Какой самый простой способ узнать, реализует ли параметр типа интерфейс в c # 2.0?
-
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) )
...
И тоже работает, но ваш ответ кажется более надежным и был тем, что я искал.Спасибо!
Не связан с StackOverflow