Faccio riferimento al mio vecchio post:
public static operator
dove ho decompilato la ridefinizione degli operatori == e !=
Ridefinendo l’operatore == C# crea un metodo apposta che riceve parametri del tipo richiesto, nello specifico caso di una struct si tratterà (probabilmente) di due oggetti “ValueType”. Cosa cambia rispetto a ridefinire Object.Equals?
1) In Object.Equals dovremmo controllare il tipo del parametro che riceviamo.
2) Se il parametro passato è una struct viene effettuata un’operazione di boxing!