J'ai une classe MyGeneric <T> et des données mises en cache créées à partir du type MyGeneric < chaîne >, MyGeneric <int>, MyGeneric < à double > ... etc.C# Comparaison de type générique ouvert. Generic <> est "parent" du générique <T>?
Quelque part je dois vérifier certaines données pour voir si elle est MyGeneric, je code comme ceci:
if (data is MyGeneric<>) { // can't compile
// ... do something
}
ou
if (data.GetType() == typeof(MyGeneric<>)
|| typeof(MyGeneric<>).isAssginableFrom(data.GetType())) {
// no exception but none of these comparison works
}
ou ce genre de travaux de implemention stupides mais je voudrais jeter:
if (data.GetType().Name.StartsWith(typeof(MyGeneric<>).Name) { ... }
Y at-il un moyen de vérifier les relations entre le type de données réelles et type générique ouvert (MyGeneric <>)?