mi chiedo il motivo per cui in C#(oggetto) 0 == (oggetto) 0
0 == 0 // return true
(object) 0 == (object) 0 // return false
A me sembra che confronta il riferimento invece di confrontare il valore del cast.
questo è venuto a me, perché con la riflessione Mi è toccato il valore di default di ValueType che restituiscono un oggetto e quando sto paragonando a valore corrente del mio oggetto restituisce che entrambi non sono gli stessi, ma hanno lo stesso valore.
L'utilizzo di Equals o ToString funziona sull'oggetto ValueType ma non con ReferenceType che può essere nullo e pertanto non consente Equals o ToString.
Se qualcuno potrebbe dirmi come posso confrontare un oggetto diverso che può essere di qualsiasi tipo, null o con un valore dato che oggetto == oggetto sembra essere la strada sbagliata da percorrere. Sono obbligato a rielaborare i miei oggetti nel loro tipo originale in questo caso il ReferenceType sarà sempre diverso?
http://msdn.microsoft.com/en-us/library/yz2be5wk(VS.71).aspx (riferimento al box) – meandmycode