首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpCodes.Castclass。有必要吗?

OpCodes.Castclass。有必要吗?
EN

Stack Overflow用户
提问于 2011-06-07 20:53:28
回答 1查看 849关注 0票数 3

当你在堆栈顶部引用(B)的实例时,有必要发出OpCode.CastClass(typeof( A ))吗,其中B是从A派生的类,当准备用A类型的参数调用方法时?

添加:

代码语言:javascript
复制
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();
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-07 21:04:23

我猜你有类似这样的东西:

代码语言:javascript
复制
class A
{
    public void Foo() { }
}

class B : A
{
}

代码语言:javascript
复制
B b = new B();
b.Foo();

代码语言:javascript
复制
B b = new B();
((A)b).Foo();

这两种方法都有效。但强制转换不是必需的,因为B继承了A的所有成员。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6265453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档