I have an extension class for System.Net.IPAddress and I was wanting to overload the binary operators >, <, == but the compiler is telling me that I can’t overload those operators inside a static class, which I must have for my other extension methods. Is there a particular reason for this?
Thanks.
Operators must relate to instances of the type in which they are declared. Since you can’t have instances of a static class, it makes no sense to define operators.
There are no “extension operators” in .NET.
For your purposes, consider implementing an
IComparer<T>(covers<and>) and / orIEqualityComparer<T>(covers==, or you might just use compare returning0; it depends whether you consider “sorts equal” and “equal” as the same).