我有一个通用函数,我想检查类型参数是否是一个接口。反正有吗?提前谢谢!
答案 0 :(得分:9)
使用IsInterface
的Type
属性..
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;
}