J'ai une classe contenant un type générique:Comment comparer les types de paramètres génériques?
class MyClass<T>
{
}
Le type T peut être de tout type, y compris MyClass<AnotherType>
. Oui, c'est un peu récursif, peut avoir des choses comme MyClass<MyClass<MyClass<T>>>
.
À un certain point, dans MyClass, je veux savoir si T
est MyClass<AnyOtherType>
ou tout type dérivé de MyClass<AnyOtherType>
. (Peu importe ce que AnyOtherType est, juste besoin de savoir si T est MyClass). Alors comment comparer le type T avec MyClass<anything>
?
Une autre chose que j'ai compris, pour éviter les problèmes avec le paramter, est de faire MyClass<T>
Hériter MyClass
(sans paramètre), pour faciliter la comparaison.
class MyClass<T> : MyClass
Mais encore la question reste:
How can I compare T with MyClass to know if it's some type that inherits MyClass??
En ce qui concerne "la question qui reste" . 'typeof (MyClass) .IsAssignableFrom (typeof (T))' (je pense). –