我很奇怪,为什么在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