Was ist der einfachere Weg zu wissen, ob ein Typ param eine Schnittstelle in c # 2.0 implementiert?
-
01-07-2019 - |
Frage
Um zum Beispiel eines Typ param Methode gegeben suche ich nach so etwas wie das Teil in fett
void MyMethod
() {
if ( typeof (T) .Implements ( IMyInterface ) ) {//Do something
sonst
//Do something else
}
Anwers mit C # 3.0 sind auch willkommen, aber zuerst die .NET 2.0 diejenigen fallen bitte;)
Lösung
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
Andere Tipps
Ich denke
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
sollte auch funktionieren, aber ich sehe keinen Vorteil ...
ive gerade versucht mit
if( typeof(T).Equals(typeof(IMyInterface) )
...
Und auch funktioniert, aber Ihre Antwort scheint robuste und war das, was ich suchte. Dank!
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow