2011-04-07 78 views
5

我有一個類,它有一大堆繼承自它的子類。我如何測試以查看對象是否是該超類的實例,而不是任何派生類的實例?C#:測試一個超類的實例中的類而不是子類

例子:

我有一個汽車類,它有幾類繼承它,像汽車,摩托車,自行車,汽車等

假設這一點,我怎麼測試一下,看看如果車輛對象真的屬於車輛類,而不是汽車或自行車? (由於汽車和自行車是在這種情況下,汽車類的實例,也。)

+4

我覺得Vehicle並不是抽象類,這似乎很奇怪。什麼是Vehicle實例的一個例子,它不是任何派生類? – 2011-04-07 20:01:09

回答

12
if (theObject.GetType() == typeof(Vehicle)) 
{ 
    // it's really a Vehicle instance 
} 
+0

謝謝,那正是我所需要的。 – Lars 2011-04-07 19:42:11

1

您可以使用:

bool isSuper = instance.GetType() == typeof(Vehicle); 
2

使用Object.GetType()確定具體類型的對象。

Vehicle v = GetVehicle(); 

if(v.GetType() == typeof(Vehicle)) 
{ 
} 
相關問題