2

例如,给定一个类型参数方法,我正在寻找类似粗体部分的东西

void MyMethod< T >() {
if ( typeof(T).Implements( IMyInterface ) ) {

  //Do something   

别的

  //Do something else 

}

也欢迎使用 C# 3.0 的答案,但请先放弃 .NET 2.0 的答案;)

4

3 回答 3

6

Type.IsAssignableFrom

if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
  // something
}
else
{
  // something else
}
于 2008-09-18T19:30:20.673 回答
1

我认为

if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))

也应该工作:但我没有看到优势......

于 2008-09-18T19:30:35.290 回答
0

Ï刚刚尝试使用

if( typeof(T).Equals(typeof(IMyInterface) ) 
     ...

而且也有效,但是您的答案似乎更可靠,并且是我想要的。谢谢!

于 2008-09-18T19:34:24.440 回答