我有一个类,它有一大堆继承自它的子类。我如何测试以查看对象是否是该超类的实例,而不是任何派生类的实例?C#:测试一个超类的实例中的类而不是子类
例子:
我有一个汽车类,它有几类继承它,像汽车,摩托车,自行车,汽车等
假设这一点,我怎么测试一下,看看如果车辆对象真的属于车辆类,而不是汽车或自行车? (由于汽车和自行车是在这种情况下,汽车类的实例,也。)
我有一个类,它有一大堆继承自它的子类。我如何测试以查看对象是否是该超类的实例,而不是任何派生类的实例?C#:测试一个超类的实例中的类而不是子类
例子:
我有一个汽车类,它有几类继承它,像汽车,摩托车,自行车,汽车等
假设这一点,我怎么测试一下,看看如果车辆对象真的属于车辆类,而不是汽车或自行车? (由于汽车和自行车是在这种情况下,汽车类的实例,也。)
if (theObject.GetType() == typeof(Vehicle))
{
// it's really a Vehicle instance
}
谢谢,那正是我所需要的。 – Lars 2011-04-07 19:42:11
您可以使用:
bool isSuper = instance.GetType() == typeof(Vehicle);
使用Object.GetType()
确定具体类型的对象。
Vehicle v = GetVehicle();
if(v.GetType() == typeof(Vehicle))
{
}
我觉得Vehicle并不是抽象类,这似乎很奇怪。什么是Vehicle实例的一个例子,它不是任何派生类? – 2011-04-07 20:01:09