Шаг 117.
Язык программирования C#. Начала
Перегрузка операторов. Выводы
На этом шаге мы подведем некоторые итоги.
Подведем некоторый итог по изученному материалу.
- В языке C# можно определять действие операторов на операнды, являющиеся объектами пользовательских классов. Этот механизм называется перегрузкой операторов
и реализуется путем описания в пользовательском классе операторных методов.
- Операторный метод описывается с ключевыми словами public и static - то есть метод должен быть открытым и статическим. Операторный метод обязательно должен возвращать результат.
Название операторного метода получается объединением ключевого слова operator и символа оператора. Аргументы операторного метода отождествляются с операндами выражения на основе перегружаемого оператора.
У операторных методов для бинарных операторов должно быть два аргумента, у операторных методов для унарных операторов - один аргумент. Хотя бы один аргумент операторного метода должен быть объектом класса,
в котором этот операторный метод описан.
- Операторы сравнения перегружаются парами (< и >, <= и >=, == и !=). При перегрузке операторов == и != обычно
переопределяют и методы Equals() и GetHashCode().
- Операторы true и false используются для проверки объектов на "истинность" и "ложность". Операторы перегружаются в паре и должны возвращать результатом логическое значение.
Оператор true вызывается, если объект указан условием в условном операторе или операторе цикла, а также при проверке первого операнда в выражении на основе оператора ||. Оператор
false вызывается при проверке первого операнда в выражении на основе оператора &&.
- Операторы && и || не перегружаются. Но есть способ так перегрузить операторы &, |, true и false, что операторы && и || можно будет использовать.
- Можно описать операторные методы для выполнения явного и неявного приведения типов (при условии, что одним из типов является пользовательский класс). Операторы для явного приведения типов описываются
с ключевым словом explicit, операторы для неявного приведения типов описываются с ключевым словом implicit.
- Сокращенные формы операторов присваивания не перегружаются. Но можно так перегрузить базовые операторы, что сокращенные формы операторов также будут рабочими.
На следующем шаеа мы рассмотрим несколько примеров программ, в которых используется перегрузка операторов.
Предыдущий шаг
Содержание
Следующий шаг