在下面的方法中,有一种方法可以知道类型T
是否实现了特定的接口IMyInterface2
public IList<T> MyMethod<T>() where T : class, IMyInterface1
{
return myResult;
}
更新:
然后我像这样使用
MyMethod<MyClass>();
Myclass实施IMyInterface1
和IMyInterface2
MyMethod<MyClassB>();
Myclass实施IMyInterface1
和 NOT IMyInterface2
答案 0 :(得分:4)
当然有:
public IList<T> MyMethod<T>() where T : class, IMyInterface1
{
if (typeof(IMyInterface2).IsAssignableFrom(typeof(T)))
{
// code here
}
return myResult;
}
答案 1 :(得分:1)
与任何其他对象一样,除非您必须使用typeof
而不是.GetType()
:
var implements = typeof(IMyInterface2).IsAssignableFrom(typeof(T));