为了账号安全,请及时绑定邮箱和手机立即绑定

如何在.NET中执行对象的深层复制(特别是C#)?

如何在.NET中执行对象的深层复制(特别是C#)?

摇曳的蔷薇 2019-05-29 15:13:17
如何在.NET中执行对象的深层复制(特别是C#)?我想要一个真正的深拷贝。在Java中,这很简单,但是你如何在C#中做到这一点?
查看完整描述

3 回答

?
红颜莎娜

TA贡献1842条经验 获得超12个赞

以Kilhoffer的解决方案为基础......

使用C#3.0,您可以创建一个扩展方法,如下所示:

public static class ExtensionMethods{
    // Deep clone
    public static T DeepClone<T>(this T a)
    {
        using (MemoryStream stream = new MemoryStream())
        {
            BinaryFormatter formatter = new BinaryFormatter();
            formatter.Serialize(stream, a);
            stream.Position = 0;
            return (T) formatter.Deserialize(stream);
        }
    }}

它扩展了使用DeepClone方法标记为[Serializable]的任何类

MyClass copy = obj.DeepClone();


查看完整回答
反对 回复 2019-05-29
  • 3 回答
  • 0 关注
  • 1201 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信