Какой самый простой способ узнать, реализует ли параметр типа интерфейс в c # 2.0?

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

  •  01-07-2019
  •  | 
  •  

Вопрос

Например, учитывая метод параметра типа, я ищу что-то вроде части, выделенной жирным шрифтом

недействительный мой метод< T >() {
если ( typeof(T).Реализует( IMyИнтерфейс ) ) {

  //Do something   

ещё

  //Do something else 

}

Ответы, использующие C # 3.0, также приветствуются, но сначала, пожалуйста, отбросьте .NET 2.0 ;)

Это было полезно?

Решение

Тип.Присваивается из

if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
  // something
}
else
{
  // something else
}

Другие советы

Я думаю , что

if (typeof (IMyInterFace).IsAssignableFrom(typeof(T))

тоже должно сработать:но я не вижу в этом преимущества...

* только что попробовал использовать

if( typeof(T).Equals(typeof(IMyInterface) ) 
     ...

И тоже работает, но ваш ответ кажется более надежным и был тем, что я искал.Спасибо!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top