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

Roy*_*Roy 4 .net c#

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

Qui*_*son 9

使用IsInterface的属性Type..

public void DoCoolStuff<T>()
{
    if(typeof(T).IsInterface)
    {
        //TODO: Cool stuff...
    }
}
Run Code Online (Sandbox Code Playgroud)


Ric*_*ich 5

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

void YourGenericMethod<T>() where T : IYourInterface {
    // Do stuff. T is IYourInterface.
}
Run Code Online (Sandbox Code Playgroud)