Qual è il modo più semplice per sapere se un tipo param implementa un'interfaccia in C# 2.0?
-
01-07-2019 - |
Domanda
Ad esempio, dato un metodo di tipo param, sto cercando qualcosa come la parte in grassetto
void MioMetodo< T >() {
Se ( tipodi(T).Implementi( IMyInterface ) ) {//Do something
altro
//Do something else
}
Anche le risposte utilizzando C# 3.0 sono benvenute, ma prima elimina quelle .NET 2.0, per favore ;)
Soluzione
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
Altri suggerimenti
Penso
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
dovrebbe funzionare anche:ma non vedo alcun vantaggio...
Ho appena provato a usarlo
if( typeof(T).Equals(typeof(IMyInterface) )
...
E funziona anche, ma la tua risposta sembra più solida ed era quello che stavo cercando.Grazie!
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow