这究竟是如何工作的?
如果我有这个基类
public class BaseClass
{
public int Value1 { get; set; }
public int Value2 { get; set; }
public BaseClass SimpleClone()
{
BaseClass result = new BaseClass();
result.Value1 = this.Value1;
result.Value2 = this.Value2;
return result;
}
}
还有这个子类
public class DerivedClass : BaseClass
{
public bool Value3 { get; set; }
public DerivedClass()
{
Value3 = true;
}
}
如何将 BaseCast.SimpleClone()
向下转换为 anotherObj
? Value3 会怎样?
虽然知道会发生什么是好事,但我也对为什么它以这种方式运作很感兴趣。
最佳答案
如果我理解正确,你的问题是当你执行以下操作时会发生什么
DerivedClass derived = (DerivedClass)baseObj.SimpleClone();
你试过吗?简单地说,它会导致 InvalidCastException
,因为 BaseClass
不是 DerivedClass
。
我有answered a similar question here , 那应该把事情搞清楚了。
关于c# - 当我执行沮丧时实际上发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23591100/