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 に答える