Qual é a maneira mais fácil de saber se um tipo de param implementa uma interface em C # 2.0?
-
01-07-2019 - |
Pergunta
Por exemplo, dado um método tipo param eu estou procurando algo como a parte em negrito
MyMethod vazio
() {
if ( typeof (T) .Implements ( IMyInterface ) ) {//Do something
else
//Do something else
}
anwers usando C # 3.0 são também bem-vindos, mas primeiro largue o .NET 2.0 queridos agradar;)
Solução
if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
// something
}
else
{
// something else
}
Outras dicas
Eu acho
if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))
também deve funcionar, mas eu não vejo uma vantagem ...
Ive apenas tentei usando
if( typeof(T).Equals(typeof(IMyInterface) )
...
E também funciona, mas a sua resposta parece mais robusto e era o que eu estava procurando. Obrigado!
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow