我有一个基类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