针对“类”类型,C#中的等号相当于C++中的引用,赋值的结果是产生一个引用而非新的对象。
如果要产生新的一个对象,内容和老的对象一致,可以通过下面方法实现(使用 MemberwiseClone 复制类):
class MyBaseClass {
public static string CompanyName = "My Company";
public int age;
public string name;
public object cloneClass()
{
return MemberwiseClone();
}
}
class MyDerivedClass{
static void Main() {
MyBaseClass m1 = new MyBaseClass ();
m1.age = 42;
m1.name = "Sam";
MyBaseClass m2=(MyBaseClass)m1.cloneClass();
m2.age=44;//此句不会影响m1.age的值
}
}