У меня есть дополнительный класс для Системы. Сеть. IPAddress и я желали перегрузить бинарных операторов >, <, ==
но компилятор говорит мне, что я не могу перегрузить те операторы в статическом классе, который я должен иметь для своих других дополнительных методов. Существует ли конкретная причина этого?
Спасибо.
Операторы должны относиться к экземплярам того типа, в котором они объявлены. Поскольку у вас не может быть экземпляров статического класса, нет смысла определять операторы.
В .NET нет «операторов расширения».
Для ваших целей рассмотрите возможность реализации IComparer
(охватывает <
и >
) и / или IEqualityComparer
(охватывает ==
, или вы можете просто использовать compare return 0
; это зависит от того, считаете ли вы «сортировки равными» и «равными» одинаковыми) .