如何找出(Type是Type)C#

时间:2010-06-30 15:30:01

标签: c# generics c#-4.0

我正在使用两种类型,一种是通用的,另一种不是。我没有对象的实例,但我想找出if ( MyType is T )或换句话说if ( MyType inherits T)

同样,我正在寻找:

if ( Truck is Vehicle )

if ( MyTruckObject is Vehicle)

3 个答案:

答案 0 :(得分:11)

答案 1 :(得分:5)

尝试:

if (typeof(Truck).IsSubclassOf(typeof(Vehicle)))

答案 2 :(得分:2)

嗯,给定泛型类型参数,你可以做类似的事情:

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

}

或者,将约束应用于方法以确保它:

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

}