我的项目中有一个带有派生类的泛型类。
public class GenericClass<T> : GenericInterface<T>
{
}
public class Test : GenericClass<SomeType>
{
}
有没有办法找出
Type
对象是否从 GenericClass
派生?t.IsSubclassOf(typeof(GenericClass<>))
不起作用。
最佳答案
试试这个代码
static bool IsSubclassOfRawGeneric(Type generic, Type toCheck) {
while (toCheck != null && toCheck != typeof(object)) {
var cur = toCheck.IsGenericType ? toCheck.GetGenericTypeDefinition() : toCheck;
if (generic == cur) {
return true;
}
toCheck = toCheck.BaseType;
}
return false;
}
关于c# - 检查类是否派生自泛型类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/457676/