Как проще узнать, реализует ли параметр типа интерфейс в c # 2.0? - PullRequest
2 голосов
/ 18 сентября 2008

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

void MyMethod () {
if ( typeof (T) .Implements ( IMyInterface ) ) {

  //Do something   

еще

  //Do something else 

}

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

Ответы [ 3 ]

6 голосов
/ 18 сентября 2008

Type.IsAssignableFrom

if(typeof(IMyInterface).IsAssignableFrom(typeof(T)))
{
  // something
}
else
{
  // something else
}
1 голос
/ 18 сентября 2008

Я думаю

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

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

0 голосов
/ 18 сентября 2008

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...