【发布时间】:2013-04-10 20:16:34
【问题描述】:
我有一个包含泛型类型的类:
class MyClass<T>
{
}
T 类型可以是任何类型,包括MyClass<AnotherType>。
是的,这有点递归,可以有 MyClass<MyClass<MyClass<T>>> 之类的东西。
在某些时候,在 MyClass 中,我想知道 T 是 MyClass<AnyOtherType> 还是派生自 MyClass<AnyOtherType> 的任何类型。 (不管 AnyOtherType 是什么,只需要知道 T 是否是 MyClass)。
那么,如何比较 T 型和MyClass<anything>?
为了避免参数出现问题,我想到的另一件事是让MyClass<T> 继承MyClass(不带参数),以便于比较。
class MyClass<T> : MyClass
但问题仍然存在:
How can I compare T with MyClass to know if it's some type that inherits MyClass??
【问题讨论】:
-
关于“剩下的问题”。
typeof(MyClass).IsAssignableFrom(typeof(T))(我认为)。
标签: c# generics type-parameter