Kyl*_*ran 4 c# casting downcast
这究竟是如何工作的?
如果我有这个基类
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;
}
}
Run Code Online (Sandbox Code Playgroud)
而这个孩子班
public class DerivedClass : BaseClass
{
public bool Value3 { get; set; }
public DerivedClass()
{
Value3 = true;
}
}
Run Code Online (Sandbox Code Playgroud)
我怎么能向下转换BaseCast.SimpleClone()成anotherObj?Value3会发生什么?虽然知道发生了什么是好的,但我也对它为什么这样工作感兴趣.
如果我理解正确您的问题是当您执行以下操作时会发生什么
DerivedClass derived = (DerivedClass)baseObj.SimpleClone();
Run Code Online (Sandbox Code Playgroud)
你试过吗?简单地说,它将导致,InvalidCastException因为BaseClass它不是DerivedClass.
我在这里回答了类似的问题,这应该清楚了.