Quel est le moyen le plus simple de savoir si un type param implémente une interface en c # 2.0?
-
01-07-2019 - |
Question
Par exemple, étant donné une méthode de type param, je recherche quelque chose comme la partie en gras
annule MyMethod < T & Gt; () {
if ( typeof (T) .Implements ( IMyInterface ) ) {//Do something
sinon
//Do something else
}
Les réponses utilisant C # 3.0 sont également les bienvenues, mais supprimez d'abord celles de .NET 2.0;)
La solution
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
Autres conseils
Je pense
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
devrait également fonctionner: mais je ne vois pas d'avantage ...
& # 207; venez d'essayer d'utiliser
if( typeof(T).Equals(typeof(IMyInterface) )
...
Et ça marche aussi, mais votre réponse semble plus robuste et était ce que je cherchais. Merci!
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow