The C# compiler requires that whenever a custom type defines operator ==, it must also define != (see here).
Why?
I\'m curious to k
Probably for if someone needs to implement three-valued logic (i.e. null). In cases like that - ANSI standard SQL, for instance - the operators can't simply be negated depending on the input.
You could have a case where:
var a = SomeObject();
And a == true returns false and a == false also returns false.