public abstract class ContentManagedEntity
{
public Guid Guid { get; set; }
public bool Active;
public int DisplayOrder;
}
public class StoreCategory : ContentManagedEntity
{
public string Name { get; set; }
}
public class XMLStoreCategory : StoreCategory, IXMLDataEntity
{
public bool Dirty = false;
}
void main() {
var storecategory = new StoreCategory { Name = "Discount Stores" };
var xmlstorecategory = (XMLStoreCategory) storecategory; // Throws InvalidCastException
}
是否有原因在运行时在最后一行抛出InvalidCastException?
(巴哈,正如我写这篇文章时,答案突然出现在我的脑海中,整日清晰。张贴出来供后代使用,只是为了确保我做对了。)
最佳答案
所有XMLStoreCategory
对象都是StoreCategory
,但并非所有StoreCategory
都是XMLStoreCategory
。在这种情况下,您要创建一个StoreCategory
并尝试将其强制转换为不是。
关于c# - 从基类强制转换为继承类时,InvalidCastException?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7393199/