Ich frage mich, warum in C#(Objekt) 0 == (Objekt) 0
0 == 0 // return true
(object) 0 == (object) 0 // return false
Für mich sieht es aus wie es die Referenz anstelle des Vergleichens des Wertes des gegossenen vergleicht.
Das kam zu mir, weil ich mit Reflection den Standardwert ValueType bekomme, der ein Objekt zurückgibt und wenn ich es mit dem aktuellen Wert meines Objekts vergleiche, dass beide nicht gleich sind, aber denselben Wert haben.
Mit Equals oder ToString arbeiten Sie am ValueType-Objekt, aber nicht mit ReferenceType, das null sein kann und daher Equals oder ToString nicht zulässt.
Wenn mir jemand sagen könnte, wie ich verschiedene Objekte vergleichen kann, die von jedem Typ sein können, null oder mit einem Wert, da Objekt == Objekt scheint der falsche Weg zu gehen. Müssen Sie meine Objekte in ihren ursprünglichen Typ umwandeln? In diesem Fall ist der ReferenceType immer anders?
http://msdn.microsoft.com/en-us/library/yz2be5wk(VS.71).aspx (Box-Referenz) – meandmycode