上面有点错误。如下:
----------------------------------------
public class A <T>
{
}public class B :A <int>
{
}public class C : B
{
}如何才能知道C是从A <T> 继承的。bool b = typeof(A<int>).IsAssignableFrom(typeof(C)); //可以
bool b = typeof(A<>).IsAssignableFrom(typeof(C)); //不行那位兄弟对泛型熟悉,帮忙看一下。
----------------------------------------
public class A <T>
{
}public class B :A <int>
{
}public class C : B
{
}如何才能知道C是从A <T> 继承的。bool b = typeof(A<int>).IsAssignableFrom(typeof(C)); //可以
bool b = typeof(A<>).IsAssignableFrom(typeof(C)); //不行那位兄弟对泛型熟悉,帮忙看一下。
C#
public virtual bool IsAssignableFrom (
Type c
)
参数
c
与当前的 Type 进行比较的 Type。
返回值
如果 c 和当前 Type 表示同一类型,当前 Type 在 c 的继承层次结构中,当前 Type 是 c 实现的接口,或者 c 是泛型类型参数且当前 Type 表示 c 的约束之一,则为 true。如果上述情况都不符合,或者 c 为空引用(在 Visual Basic 中为 Nothing),则为 false。
msdn不是写的很清楚了么,只要调用IsAssignableFrom的type是参数type的父类,接口或者约束就可以返回true啊