我無法得到正確的語法。C#:如何檢查兩個實例的類型
說我有兩個實例化對象,obj1和obj2。
現在,我要檢查兩件事情:
1)是OBJ1的類型是OBJ 2的類型的子。
2)是obj1的類型是相同作爲obj2的類型。
我敢肯定,我可以實現1)只是在做
obj1.GetType().IsSubclassOf(obj2.GetType())
但將上述返回true,如果OBJ1和OBJ2是同一類型的?
我無法得到正確的語法。C#:如何檢查兩個實例的類型
說我有兩個實例化對象,obj1和obj2。
現在,我要檢查兩件事情:
1)是OBJ1的類型是OBJ 2的類型的子。
2)是obj1的類型是相同作爲obj2的類型。
我敢肯定,我可以實現1)只是在做
obj1.GetType().IsSubclassOf(obj2.GetType())
但將上述返回true,如果OBJ1和OBJ2是同一類型的?
有疑問時,諮詢the documentation(重點煤礦):
返回值:
true
如果由c
參數所表示的Type
和當前Type
表示類,並且由當前Type
表示的類派生自c
所代表的類;否則,false
。如果
c
和當前Type
表示相同的類,此方法還返回false
。
如果要檢查兩個類型相同,你可以比較它們的Type
S:
obj1.GetType() == obj2.GetType()
MSDN說,如果OBJ1和OBJ2是同一類http://msdn.microsoft.com/en-us/library/system.type.issubclassof.aspx
它會返回false你可以做
obj1.GetType().IsSubclassOf(obj2.GetType()) || obj1.GetType() == (obj2.GetType()
obj2.GetType().IsAssignableFrom(obj1.GetType())
Doh!應該查看它。即使我這樣做了,我也會有另外一個關於測試類型相等性的問題,您在這個回覆中已經回答了我。謝謝! – Ben 2010-11-04 04:52:27