这个例子可以更好地解释。假设有以下两个类:
public class MyClassA
{
public String Property_A { get; set; }
public String Property_B { get; set; }
public String Property_C { get; set; }
public String Property_D { get; set; }
...
public String Property_Y { get; set; }
}
public class MyClassB: MyClassA
{
public String Property_Z { get; set; }
}
假设我已经完全创建了MyClassA的实例(填入了所有属性从A到Y)。然后我需要创建一个MyClassB的实例,它与我的MyClassA实例完全相同,但是Property_Z被填充了(当然是自定义值)。我该怎么做呢?
这样做不起作用(抛出无效转换异常):
MyClassB myInstanceB = (myClassB) myInstanceA;
myInstance.Property_Z = myCustomValue;
自从我的C++时代以来,我就没有需要做这样的事情了,我被难住了。
有什么想法吗?
更新:我在如何创建实例方面找到了解决办法。它在下面。我没有将其标记为答案,因为它并不完全符合我的问题。