有什么更简单的方法知道类型参数是否在c#2.0中实现了接口?
时间:2020-03-06 14:23:05 来源:igfitidea点击:
例如,给定类型参数方法,我正在寻找粗体部分
void MyMethod< T >() { if ( typeof(T).Implements( IMyInterface ) ) { //Do something else //Do something else }
也欢迎使用C3.0的Anwer,但请先删除.NET 2.0的;)
解决方案
Type.IsAssignableFrom
if(typeof(IMyInterface).IsAssignableFrom(typeof(T))) { // something } else { // something else }
我认为
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
应该也可以工作:但是我没有看到优势...
刚刚尝试使用
if( typeof(T).Equals(typeof(IMyInterface) ) ...
也可以,但是答案似乎更可靠,而且正是我所寻找的。谢谢!