Как узнать, является ли (Type is Type) C # - PullRequest
2 голосов
/ 30 июня 2010

Я работаю с двумя типами, один общий, а другой нет.У меня нет экземпляров объектов, но я хочу узнать if ( MyType is T ) или другими словами if ( MyType inherits T)

Опять я ищу:

if ( Truck is Vehicle )

не

if ( MyTruckObject is Vehicle)

Ответы [ 3 ]

11 голосов
/ 30 июня 2010
5 голосов
/ 30 июня 2010

попробуй:

if (typeof(Truck).IsSubclassOf(typeof(Vehicle)))
2 голосов
/ 30 июня 2010

Что ж, учитывая аргумент общего типа, вы можете сделать что-то вроде:

if (typeof(Vehicle).IsAssignableFrom(typeof(T))) 
{

}

Или примените ограничение к методу, чтобы обеспечить его:

public void DoSomething<T>() where T : Vehicle 
{

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