C#中浅度复制

来源:百度知道 编辑:UC知道 时间:2024/06/23 03:36:54
class MyCopyableClass
{
protected int myInt;
public int ContainedInt
{
get
{
return myInt;
}
set
{
myInt = value;
}
}
public MyCopyableClass GetCopy()
{
return (MyCopyableClass)MemberwiseClone();
}
static void Main(string[] args)
{
MyCopyableClass obj1 = new MyCopyableClass();
obj1.ContainedInt = 5;
MyCopyableClass obj2 = obj1.GetCopy();
obj1.ContainedInt = 9;
Console.WriteLine(obj2.ContainedInt);
Console.ReadKey();
}
}
}
结果为什么是5阿?明明是浅度复制,应该obj1和obj2指向相同的成员对象。我的理解哪里出问题?谢谢
麻烦解释详细些,还有我怎么改才能让结果是9呢?还有“引用”到底是个什么概念啊?

试试这段代码
public class MyCopyableClass1
{
protected int myInt;
public int ContainedInt
{
get
{
return myInt;
}
set
{
myInt = value;
}
}
}
public class MyCopyableClass
{
MyCopyableClass1 m=new MyCopyableClass1();
public MyCopyableClass1 M
{
get
{return m;}
set
{
m=value;
}
}
public MyCopyableClass GetCopy()
{
return (MyCopyableClass)MemberwiseClone();
}
}

public class MyClass
{

public static void Main()
{
MyCopyableClass obj1 = new MyCopyableClass();