2011-04-07 24 views
5

yerine bir sınıfa sahip olup olmadığını test edin Bir sınıf var, ondan bir grup alt sınıf var. Bir nesnenin, türetilmiş sınıfların hiçbirinin bu süper sınıfın bir örneği olup olmadığını nasıl test edebilirim?C#: Alt sınıfın yerine bir sınıfın bir sınıfının

Örnek: Bir Araç sınıf var ve bu Car gibi, ondan devralan birkaç sınıfları vardır

, Motosiklet, vb

Bisiklet, Kamyon, ben diye test, nasıl bu varsayarsak Eğer bir Araç nesnesi gerçekten Taşıt veya Bisiklet değil, araç sınıfıysa? (A Car ve Bisiklet beri de bu durumda araç sınıfının bir örneğidir.)

+4

Aracın soyut bir sınıf olmadığı bana tuhaf geliyor. Türetilmiş sınıflardan hiçbiri olmayan bir Taşıt Örneğinin bir örneği nedir? –

cevap

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

Teşekkürler, ihtiyacım olan buydu. – Lars

1

Sen kullanabilirsiniz:

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

kullanın Object.GetType() nesnenin somut türünü belirlemek için.

Vehicle v = GetVehicle(); 

if(v.GetType() == typeof(Vehicle)) 
{ 
} 
İlgili konular