如何检查该对象是否实现了接口

时间:2011-03-01 11:04:15

标签: c# inheritance types

鉴于这种情况

interface A {}

class B : A {}

A b = new B();

如何检查对象b是否从界面A创建?

4 个答案:

答案 0 :(得分:10)

尝试使用is

if(b is A)
{
    // do something
}

是你想要的吗?

答案 1 :(得分:5)

你可以这样测试:

var b = new B();

var asInterface = x as A;
if (asInterface == null) 
{
    //not of the interface A!
}

答案 2 :(得分:3)

ISAS

答案 3 :(得分:0)

我们发现使用以下内容很实际:

IMyInterface = instance as IMyInterface;
if (intance != null)
{
//do stuff
}

'as'比'is'更快,也节省了许多演员阵容 - 如果你的实例是IMyInterface,你就不需要演员了。