Переопределение операций классов в языке C#

В этот статье поговорим о переопределении операций классов на языке C#.

Допустим, у нас имеется два множества A и B, и нам необходимо написать программу, которая находит их разность. Мы могли бы написать метод, который в качестве аргументов принимал бы множества A и B, а возвращал бы результат:

Но если переопределить операцию деления (/) для двух аргументов типа (RealSet A, RealSet B), то появляется возможность получить результат выполнив такую операцию:

Или такую:

Давайте рассмотрим пример программы, которая решает следующую задачу:

Реализовать на языке C# класс “Множество вещественных чисел” такой, чтобы разность двух множеств и присвоение результата третьей переменной-множеству можно было осуществить одной строкой C=A/B, как во время объявлении переменной C, так и после.

Итак, создадим в Visual Studio проект – консольную программу на языке C#. Добавим к решению файл с исходным текстом (там будем писать класс “Множество вещественных чисел”) и назовем его, например, myCode.cs. Поместим туда следующий код:

Пространство имен: Set_of_real_numbers, класс: RealSet. Прокомментирую код по строчкам:

7: Массив, в котором будут хранится элементы множества.

9: Конструктор класса, принимает в качестве аргумента целое число – количество элементов в множестве.

14: Конструктор по умолчанию – не принимает аргументов.

Примечание. Конструктор – это нечто вроде метода, который содержит набор инструкций и исполняется при создании объекта класса. Не наследуется и не имеет явно определенного типа возвращаемых данных.

19: Этот метод осуществляет заполнение множества числами, посредством ввода их с клавиатуры.

28: Здесь переопределяем операцию / для двух операндов типа RealSet, с помощью ключевого слова operator.И в этом методе описываем алгоритм вычитания двух множеств.

73: Метод выводит на экран элементы множества экземпляра класса.

Теперь рассмотрим файл Program.cs. Его листинг представлен ниже:

2: С помощью директивы using включаем в программу пространство имен из файла myCode.cs.

10-18: Заполняем множества A и B элементами.

20: Вычисляем разность множеств, результат заносится в  экземпляр C. Разность также можно вычислить с помощью кода, написанного в строках 22 и 23.

25-28: Выводим результат на экран.

Демонстрация работы программы представлена на рисунке:

redefinition of operations classes

Если хотите скачать исходник программы, то нажмите на кнопку ниже:

Скачать исходник

 

Переопределение операций классов в языке C#
5 (100%) 1 vote

Поделиться в соц. сетях:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">