我很奇怪,爲什麼在C#(對象)== 0(對象)0
0 == 0 // return true
(object) 0 == (object) 0 // return false
對我來說,它看起來像它的參考,而不是比較比較塑像的價值。
這對我來說是因爲使用Reflection我得到的ValueType返回一個對象的默認值,當我將它與我的對象的當前值進行比較時,它返回的值不同,但具有相同的值。
使用Equals或ToString在ValueType對象上工作,但不能與ReferenceType一起使用,該類型可以爲null,因此不允許Equals或ToString。
如果有人能告訴我如何比較不同的對象,可以是任何類型,空值或值,因爲對象==對象似乎是錯誤的路要走。我有義務將我的對象改寫爲原始類型,在這種情況下,ReferenceType總是不同的?
http://msdn.microsoft.com/en-us/library/yz2be5wk(VS.71).aspx(裝箱參考) – meandmycode 2009-06-05 19:06:35