Powiel możliwe:
Why must we define both == and != in C#?Przeciążenie + =, +, ==, i = operatorzy
Dlaczego przeciążenie + = możliwe tylko przez przeciążenie +, ale == i! = są osobno przeciążone?
Wygląda na to, że powinien zostać odwrócony.
+ = przeciążanie jest prawie zawsze możliwe, aby pisać bardziej efektywnie, ponieważ nie jest konieczne przydzielanie pamięci dla nowego obiektu. Ale nie mogę wymyślić przykładu, w którym operatory == i! = Powinny być inne w czymś innym niż odwracanie wyniku Equals().
+1 Wyobraź sobie szaleństwo, jeśli możesz przeciążyć '+' i '+ =' oddzielnie ... –
Jeśli C# i .net nie zrobiły złych rzeczy o zmiennych strukturach (zmienne struktury nie są złe - niektóre rzeczy .net jest z nimi), lub jeśli pozwoliły klasom ograniczać złą rozwiązłość dzielenia się odniesieniami do ich obiektów, byłoby użyteczne mieć oddzielne operatory + = i +, ponieważ użycie operatora "+" oznaczałoby zrobienie kopiować i pozostawiać oryginał nietknięty, natomiast "+ =" oznacza, że oryginał można zmodyfikować. Zwróć uwagę, że wydarzenia obsługują "+ =" i "- =", ale nie obsługują "+" i "-". – supercat