1

在下面的方法中有一种方法可以知道该类型是否T实现了特定的接口IMyInterface2

public IList<T> MyMethod<T>() where T : class, IMyInterface1
{

   return myResult;
}

更新 :

然后我像这样使用

MyMethod<MyClass>();

Myclass 实现IMyInterface1IMyInterface2

MyMethod<MyClassB>();

Myclass 实现IMyInterface1不是 IMyInterface2

4

2 回答 2

4

当然有:

public IList<T> MyMethod<T>() where T : class, IMyInterface1
{
    if (typeof(IMyInterface2).IsAssignableFrom(typeof(T)))
    {
        // code here
    }

    return myResult;
}
于 2012-07-16T11:44:35.020 回答
1

就像任何其他对象一样,除了你必须使用typeof而不是.GetType()

var implements = typeof(IMyInterface2).IsAssignableFrom(typeof(T));
于 2012-07-16T11:44:56.063 回答