2016-02-16 53 views
3

說我有三個班如何判斷對象的類是否與您指定的完全相同?的用法「是」關鍵字

public class A { } 
public class B: A { } 
public class C: B { } 

如果我要創建C objC = new C()類型的對象,並使用is關鍵字查詢語句objC is B的有效性,我將有true結果。從我所知道的is只檢查將給定對象實例轉換爲指定類型的有效性。

對於我的應用程序中的一個案例,我需要知道/比較某個對象的特定類,以便在給定對象引用時將它與某種類型進行比較,當且僅當它完全是該類型時才返回true。

有沒有辦法做到這一點?

+0

這聽起來像你的使用情況是基於違反了里氏替換原則的。 'C' *是'B'的一個實例。 – David

+0

你可以做objC.GetType()== typeof(C) –

+0

Object.ReferenceEquals(x.GetType(),y.GetType()) – Hogan

回答

6

您可以檢查使用typeofGetType特定類型:

objC.GetType() == typeof(B) //false 
objC.GetType() == typeof(C) //true 
相關問題