2012-07-16 91 views
1

在下面的方法是有没有办法知道,如果类型T实现特定接口IMyInterface2找出一个泛型类型实现一个接口

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

    return myResult; 
} 

更新:

然后我用像这

MyMethod<MyClass>(); 

MYCLASS实施IMyInterface1IMyInterface2

MyMethod<MyClassB>(); 

MYCLASS实施IMyInterface1IMyInterface2

回答

4

肯定有:

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

    return myResult; 
} 
1

正如任何其他目的,除非你必须使用typeof,而不是.GetType()

var implements = typeof(IMyInterface2).IsAssignableFrom(typeof(T)); 
相关问题