如何检查类型参数是否实际上是一个接口

时间:2010-08-16 03:42:30

标签: c# .net

我有一个通用函数,我想检查类型参数是否是一个接口。反正有吗?提前谢谢!

3 个答案:

答案 0 :(得分:9)

使用IsInterfaceType属性..

public void DoCoolStuff<T>()
{
    if(typeof(T).IsInterface)
    {
        //TODO: Cool stuff...
    }
}

答案 1 :(得分:5)

如果您想约束您的泛型方法,以便type参数只能是实现某些特定接口的类型,那么您应该执行以下操作:

void YourGenericMethod<T>() where T : IYourInterface {
    // Do stuff. T is IYourInterface.
}

答案 2 :(得分:4)

您可以使用typeof运算符和Type.IsInterface属性显式检查泛型类型参数。

void MyMethod<T>() {
  bool isInterface = typeof(T).IsInterface;
}