Почему операторы не могут быть перегружены в статическом классе?

У меня есть дополнительный класс для Системы. Сеть. IPAddress и я желали перегрузить бинарных операторов >, <, == но компилятор говорит мне, что я не могу перегрузить те операторы в статическом классе, который я должен иметь для своих других дополнительных методов. Существует ли конкретная причина этого?

Спасибо.

8
задан lumberjack4 11 February 2010 в 16:25
поделиться

1 ответ

Операторы должны относиться к экземплярам того типа, в котором они объявлены. Поскольку у вас не может быть экземпляров статического класса, нет смысла определять операторы.

В .NET нет «операторов расширения».

Для ваших целей рассмотрите возможность реализации IComparer (охватывает < и > ) и / или IEqualityComparer (охватывает == , или вы можете просто использовать compare return 0 ; это зависит от того, считаете ли вы «сортировки равными» и «равными» одинаковыми) .

13
ответ дан 5 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: