当你在堆栈顶部引用(B)的实例时,有必要发出OpCode.CastClass(typeof( A ))吗,其中B是从A派生的类,当准备用A类型的参数调用方法时?
添加:
interface IFoo
{
void IFoo();
}
public class A:IFoo
{
public void IFoo()
{
}
}
public class B:A,IFoo
{
new public void IFoo()
{
}
}
var b = new B();
(b as IFoo).Foo();
((b as A) as IFoo).Foo();发布于 2011-06-07 21:04:23
我猜你有类似这样的东西:
class A
{
public void Foo() { }
}
class B : A
{
}B b = new B();
b.Foo();和
B b = new B();
((A)b).Foo();这两种方法都有效。但强制转换不是必需的,因为B继承了A的所有成员。
https://stackoverflow.com/questions/6265453
复制相似问题