我有一个通用函数,我想检查类型参数是否是一个接口。无论如何要这样做?提前致谢!如何检查类型参数是否实际上是一个接口
4
A
回答
9
使用的Type
的IsInterface
属性..
public void DoCoolStuff<T>()
{
if(typeof(T).IsInterface)
{
//TODO: Cool stuff...
}
}
+0
就像在桶里拍摄鱼一样! – 2010-08-16 03:46:38
4
您可以显式检查使用typeof
运营商和Type.IsInterface
财产泛型类型参数。
void MyMethod<T>() {
bool isInterface = typeof(T).IsInterface;
}
5
如果你想约束您的通用方法,以便类型参数只能实现一些特定接口并没有什么意外的话,你应该做以下类型:
void YourGenericMethod<T>() where T : IYourInterface {
// Do stuff. T is IYourInterface.
}
+0
+1我没有想过,但这可能是OP试图解决的实际问题。 – 2010-08-16 03:57:23
+0
这是最佳做法 – 2010-08-16 03:58:18
相关问题
- 1. C#如何检查一个类是否实现泛型接口?
- 2. 如何检查方法参数是否实现多个接口
- 3. PHP检查是否实际类实现接口
- 4. TypeScript - 检查类是否实现接口
- 5. Golang检查接口类型是否为
- 6. 如何检查是否AWS实例实际上是提供
- 7. 检查PDF是否实际上是一个带有PHP的PDF
- 8. 如何检查是否泛型类型实例从另一个“继承”,既泛型类型和参数类型
- 9. 查明一个类型是否实现了通用接口
- 10. 如何检查一个实例是否为枚举类型
- 11. 如何判断一个类是否是java接口的实现
- 12. 检查一个类型是否是Haskell中的Show实例?
- 13. 如何检测long类型是否实际为NULL?
- 14. 如何检查模板的参数类型是否为整数?
- 15. 检查一个类是否在运行时实现了一个接口
- 16. 如何检查一个对象是否是Blob类型?
- 17. 如何检查一个对象是否实现了一个接口?
- 18. 如何获得间接实现的通用接口的实际类型参数?
- 19. 如何检查一个接口是否在C#中扩展另一个接口?
- 20. 如何在运行时检查某个类是否实现了某个接口?
- 21. 检查模板参数是否是类类型?
- 22. 如何检查参数包中的每种类型是否都是唯一的?
- 23. 通过实现一个接口,类是否成为该接口的“类型”?
- 24. 如何检查一个类是否为MVC中的模型类
- 25. 如何检查一个对象是否为类c的类型?
- 26. 如何检查一个类是否为java.lang.Number类型
- 27. 如何检查一行代码是否实际成功?
- 28. Java - 如何检查类是否继承某些类或接口?
- 29. 如何检查路径是实际还是符号链接
- 30. 如何检查类型是否是Python中的某个类型的子类型?
一个特定的接口或任何接口? – 2010-08-16 03:47:55