我有一個類,它有一大堆繼承自它的子類。我如何測試以查看對象是否是該超類的實例,而不是任何派生類的實例?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