A similar question was asked before .
The biggest reason is that when overloading the == and != Operators, you do not need to return a boolean value. If you do not return a boolean, you cannot just invert the free operator. There are other possible reasons why they are overloaded separately, and you can view the answers to this question for these other reasons.
There is a valid reason why you cannot overload += , and therefore it is executed implicitly through the + operator. I have to do with the fact that you cannot override the assignment operator in C #, this is part of the standard language. += is the increment and destination, the last of which cannot be overloaded in C #.
source share