Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/259.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
了解类型参数是否在c#2.0中实现接口的最简单方法是什么?_C#_Reflection_Types - Fatal编程技术网

了解类型参数是否在c#2.0中实现接口的最简单方法是什么?

了解类型参数是否在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(

例如,给定一个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(T).Equals(typeof(IMyInterface) ) 
     ...

同样有效,但您的答案似乎更可靠,这正是我所寻找的。谢谢!

是吗?它应该只适用于T的IMyInterface。在我的特定情况下,它适用于我,但行为是您描述的:如果您想知道对象是否实现IMyInterface,它不起作用,但要断言类型T是IMyInterface。谢谢您的更正!
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
if( typeof(T).Equals(typeof(IMyInterface) ) 
     ...