中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

C#object如何實現深拷貝

c#
小樊
85
2024-07-08 20:06:19
欄目: 編程語言

在C#中實現深拷貝的方法有很多種,以下是其中一種方法:

  1. 使用序列化和反序列化:將對象序列化為字節數組,然后再將字節數組反序列化為一個新的對象。這樣可以創建一個完全獨立的對象,與原始對象沒有任何關聯。
using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

[Serializable]
public class MyClass
{
    public int MyProperty { get; set; }
}

public class DeepCopyExample
{
    public static T DeepCopy<T>(T obj)
    {
        using (MemoryStream stream = new MemoryStream())
        {
            IFormatter formatter = new BinaryFormatter();
            formatter.Serialize(stream, obj);
            stream.Seek(0, SeekOrigin.Begin);
            return (T)formatter.Deserialize(stream);
        }
    }

    public static void Main()
    {
        MyClass originalObject = new MyClass { MyProperty = 42 };
        MyClass copiedObject = DeepCopy(originalObject);

        Console.WriteLine($"Original Object: {originalObject.MyProperty}");
        Console.WriteLine($"Copied Object: {copiedObject.MyProperty}");
    }
}

在上面的代碼中,DeepCopy方法接受一個泛型參數T,并將輸入對象序列化為字節數組,然后再反序列化為一個新的對象。最后輸出原始對象和深拷貝后的對象的屬性值。

通過這種方法可以實現深拷貝,確保新對象與原始對象完全獨立,沒有任何引用關系。

0
泰顺县| 博野县| 綦江县| 滨州市| 江陵县| 曲麻莱县| 临猗县| 西吉县| 丰县| 武功县| 克拉玛依市| 礼泉县| 新余市| 德钦县| 金秀| 革吉县| 木里| 宜昌市| 池州市| 敦化市| 临武县| 灵丘县| 永登县| 东乌| 慈利县| 上高县| 拜泉县| 桓仁| 胶州市| 石林| 唐河县| 叶城县| 卢氏县| 祁连县| 兴化市| 周至县| 北京市| 莲花县| 江口县| 从江县| 正安县|