例如,给定一个类型参数方法我正在寻找类似粗体
的部分void MyMethod< T>(){
if( typeof(T).Implements( IMyInterface )) {//Do something
否则
//Do something else
}
使用C#3.0的Anwers也很受欢迎,但首先请删除.NET 2.0的那些;)
答案 0 :(得分:6)
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
答案 1 :(得分:1)
我认为
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
也应该有效:但我没有看到优势...
答案 2 :(得分:0)
我刚尝试使用
if( typeof(T).Equals(typeof(IMyInterface) )
...
并且也有效,但你的答案似乎更强大,而且正是我所寻求的。谢谢!