1.ICloneable接口定义
public interface ICloneable
{
object Clone();
}
2.示例
public class MyClass5:ICloneable
{
public int X { get; set;}
public int Y { get; set; }
public MyClass5(int x, int y)
{
X = x;
Y = y;
}
public object Clone()
{
return new MyClass5(this.X, this.Y);
//
//return this.MemberwiseClone(); //由于该类并不包含内部引用类型变量,可使用该方法拷贝(浅复制)。
}
}
这里如果一个仅包含值类型的类或结构,使用MemberwiseClone()方法实现Clone方法。如果有一个保存其他引用类型的自定义类型,需要建立一个考虑每一个引用类型成员变量的新对象。