了解类型参数是否在c#2.0中实现接口的最简单方法是什么?
例如,给定一个type param方法,我正在寻找类似粗体部分的内容 void MyMethod了解类型参数是否在c#2.0中实现接口的最简单方法是什么?,c#,reflection,types,C#,Reflection,Types,例如,给定一个type param方法,我正在寻找类似粗体部分的内容 void MyMethod(){ if(typeof(T).Implements(IMyInterface)) { 否则 //Do something else } 也欢迎使用C#3.0的Anwers,但请先放弃.NET 2.0;) 我想 if (typeof (IMyInterFace).IsAssignableFrom(typeof(T)) 也应该有效:但我看不出有什么好处…我刚刚试过使用 if( typeof(
if(typeof(T).Implements(IMyInterface)) { 否则
//Do something else
}
也欢迎使用C#3.0的Anwers,但请先放弃.NET 2.0;)
我想
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
也应该有效:但我看不出有什么好处…我刚刚试过使用
if( typeof(T).Equals(typeof(IMyInterface) )
...
同样有效,但您的答案似乎更可靠,这正是我所寻找的。谢谢!是吗?它应该只适用于T的IMyInterface。在我的特定情况下,它适用于我,但行为是您描述的:如果您想知道对象是否实现IMyInterface,它不起作用,但要断言类型T是IMyInterface。谢谢您的更正!
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
if( typeof(T).Equals(typeof(IMyInterface) )
...