试图理解铸造和继承。我有这两个非常简单的类:铸造到基类
class BaseClass
{
public virtual void Print()
{
Console.WriteLine("Base");
}
}
class DerivedClass : BaseClass
{
public override void Print()
{
Console.WriteLine("Derived");
}
}
当我执行下面的代码时,它打印“派生”。
var derived = new DerivedClass();
((BaseClass)derived).Print();
然而
bool isBase = derived is BaseClass;
返回true。如果派生的是现在的类型BaseClass,为什么从BaseClass的方法打印不被调用?
好吧,我明白了。谢谢 – PaulP
和最好的事情是你有[在Jon Skeet链接的问题上的回答](http://stackoverflow.com/a/15140951/961113) – Habib