C#:测试超类实例中的类而不是子类

Lar*_*ars 5 c# inheritance

我有一个类,它有一堆继承自它的子类.我如何测试一个对象是否是该超类的实例,而不是任何派生类的实例?

例:

我有一个Vehicle类,它有几个继承它的类,如汽车,摩托车,自行车,卡车等.

假设这一点,我如何测试车辆对象是否真的属于类车辆,而不是汽车或自行车?(因为Car和Bicycle在这种情况下也是Vehicle类的一个实例.)

Fre*_*örk 13

if (theObject.GetType() == typeof(Vehicle))
{
   // it's really a Vehicle instance
}
Run Code Online (Sandbox Code Playgroud)