【问题标题】:What is the practical use of "Copy" constructor? [duplicate]“复制”构造函数的实际用途是什么? [复制]
【发布时间】:2015-05-06 01:55:34
【问题描述】:

好的,我知道Copy Ctor 将对象的数据复制到另一个对象。但是我仍然不清楚Copy Ctor 在实时开发中的实际用途是什么。我没有找到任何令人满意的答案,只是对它的定义。

【问题讨论】:

  • 您不会在 C# 中编写复制构造函数。看看 ICloneable.Clone 方法
  • C# 没有 C++ 那样的复制构造函数,所以我不确定您期望得到什么答案。您可以编写一些看起来像复制构造函数但没有什么特别之处的东西。
  • @ro-E 您可以并且可以说应该在 C# 中编写复制构造函数。 IClonable 并不是一个很好的解决方案;请参阅罗伯特链接问题的最佳答案。
  • 实际用途是复制一个对象。我不知道你还想知道什么..

标签: c# .net constructor


【解决方案1】:

c# 没有复制构造函数。 System.Object 类有 MemberwiseClone 方法,它为引用类型创建浅拷贝。

在浅拷贝中,值类型字段按原样复制。对于引用类型字段,地址被复制到新创建的对象中。

当为引用字段类型分配实际对象时,会创建对象的深拷贝。

可以在以下位置找到深拷贝的示例:https://msdn.microsoft.com/en-us/library/ms173116.aspx

【讨论】:

    猜你喜欢
    • 2016-01-03
    • 2010-11-06
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2021-04-14
    • 2017-03-26
    • 2016-08-06
    • 1970-01-01
    相关资源
    最近更新 更多