我有一個基類C#繼承。從基類派生類
public class A
{
public string s1;
public string s2;
}
我也有一個派生類:
public class B : A
{
public string s3;
}
假設我的程序創建的類A的一個實例
A aClassInstance = new A();
一些參數被設定:
aClassInstance.s1 = "string 1";
aClassInstance.s2 = "string 2";
在這一點上我想創建B類的實例,但是,我想B到已經有我的A類的實例的值
這並不工作:
public B bClassInstance = new B():
bClassInstance = (B)aClassInstance;
也不是這:
製造A類內的克隆方法
public B cloneA() {
A a = new A();
a = (A)this.MemberwiseClone()
return(B)a;
}
的VS代碼採用上述兩種的 - BU T I得到運行時錯誤
請幫
克隆時要小心 - 特別是如果您的類具有可變引用類型的字段。決定是否需要深度克隆或淺層克隆,並將其記錄下來。 – TrueWill 2011-12-25 22:39:14
沒錯。這個特定的類沒有引用,所以淺層的克隆就適用於它。我發現淺VS這裏深克隆一個很好的職位有興趣的人:http://itpksingh.blogspot.com/2009/08/shallow-copyingdeep-copyingobject.html – Sam 2011-12-26 00:22:32
發現使用ValueInjector的解決方案。 StackOverFlow不允許我「回答我自己的問題」。一旦確定,將發佈全部細節。 – Sam 2011-12-26 01:35:42