Was ist der einfachere Weg zu wissen, ob ein Typ param eine Schnittstelle in c # 2.0 implementiert?

StackOverflow https://stackoverflow.com/questions/96027

  •  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;)

War es hilfreich?

Lösung

Type.IsAssignableFrom

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
scroll top