浅度复制是对对象的值类型成员进行复制,对于对象体内的引用类型,如果使用浅度复制,其复制的是一个引用,复制后的对象保持和原对象一样的引用;如果是深度复制,会创建和原对象彼此独立的成员。
结合代码看看
class Program
{
public class Jasson //此处定义一个引用类型
{
public int F=4;
}
// 定义一个用于测试浅度和深度复制的类
public class Jassoner : ICloneable //继承标准接口
{
public int C=19; //值类型,所以不管是深度还是浅度,被复制对象该值改变不会影响复制对象值的变化
public Jasson Hello = new Jasson();//引用类型,
public object Getcopy() //浅度复制函数
{
return MemberwiseClone();
}
public object Clone() //深度复制函数
{
Jassoner Nihao = new Jassoner();
return Nihao;
}
}