【问题标题】:Copy C# object along with reference [duplicate]复制 C# 对象和参考 [重复]
【发布时间】:2011-01-21 09:06:35
【问题描述】:

可能重复:
Cloning objects in C#

我有一个在 c# 中创建的对象,比如 Object1。我需要将此对象临时备份到另一个对象,比如 ObjectOriginal。

但是,如果我执行 ObjectOriginal = Object1,则对 Object 1 的任何更改都会影响 ObjectOriginal。我该怎么办?

【问题讨论】:

标签: c# object


【解决方案1】:

在您的类上实现 Clone() 或使用 Object.MemberwiseClone()

http://msdn.microsoft.com/de-de/library/system.object.memberwiseclone(VS.80).aspx

【讨论】:

    【解决方案2】:

    这完全取决于 Object1 究竟是什么,即它是 DataTable、String 还是完全其他的东西?

    通过写作:

    object Object1 = new Thing();
    object Object2 = Object1;
    

    您将获得对您在第一行中实例化的对象的第二个引用。您需要做的是查看“Thing”,看看它是否有 Copy、Clone 或类似名称的方法并使用它:

    object Object1 = new Thing();
    object Object2 = Object1.Copy();
    

    例如,DataTable 提供 Copy 和 Clone 两种方法,其中 Copy 复制 DataTable 的结构和数据,而 Clone 仅复制结构。

    【讨论】:

      【解决方案3】:

      如果您想要一个对象的副本,问题始终是:副本将出现多深?我的对象中的对象应该发生什么。这些是否也应该被复制,如果是的话,它们的引用应该如何处理??

      欲了解更多信息,请访问起点this blog post from Brad Abrams

      【讨论】:

        猜你喜欢
        • 2021-02-24
        • 2018-08-22
        • 2018-10-01
        • 1970-01-01
        • 2014-10-05
        • 2018-08-25
        • 2020-10-10
        • 1970-01-01
        • 2012-07-24
        相关资源
        最近更新 更多