本人书上第2段代码体好像永远也实现不了,都是无参构造函数,本人本人动手写了一下 无法写出来 请高手们看一下,你们能不能在第一段代码的基础上写全第2段代码?另外包含主函数代码(主函数代码随便写写)不胜感激


解决方案
15
public class Content
{
public int Val;
internal Content Clone()
{
return (Content)this.MemberwiseClone();
}
}
public class Cloner : ICloneable
{
public Content MyContent = new Content();
public Cloner(int newVal)
{
MyContent.Val = newVal;
}
public Cloner()
{
}
public object Clone()
{
Cloner clonedCloner = new Cloner();
clonedCloner.MyContent = MyContent.Clone();
return clonedCloner;
}
}
15
MemberwiseClone从来没有保证过 ‘…改了一个对象里的成员 另外一个也随之改变’。
你观测到的现象,出自于MemberwiseClone只克隆一层,没有进行‘深度克隆’的行为。
MemberwiseClone本身是没有深度克隆,但你作为程序作者,可以层层调用MemberwiseClone,来达到深度克隆的目的。