Qual é a maneira mais fácil de saber se um tipo de param implementa uma interface em C # 2.0?

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

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

Foi útil?

Solução

Type.IsAssignableFrom

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