我有一个类,它有一堆继承自它的子类。我如何测试一个对象是否是该超类的实例,而不是任何派生类的实例?
示例:
我有一个Vehicle类,它有几个继承它的类,如汽车,摩托车,自行车,卡车等。
假设这一点,我如何测试车辆对象是否真的属于类车辆,而不是汽车或自行车? (因为Car和Bicycle在这种情况下也是Vehicle类的一个实例。)
答案 0 :(得分:13)
if (theObject.GetType() == typeof(Vehicle))
{
// it's really a Vehicle instance
}
答案 1 :(得分:2)
使用Object.GetType()
确定对象的具体类型。
Vehicle v = GetVehicle();
if(v.GetType() == typeof(Vehicle))
{
}
答案 2 :(得分:1)
您可以使用:
bool isSuper = instance.GetType() == typeof(Vehicle);