Классы: события, делегаты, свойства, конструкторы, финализаторы, операции, индексаторы

Делегат и лямбда-функция. Простые примеры

Задача отбора Объект — массив целых чисел класса AROB. Требуется выбрать из этого массива элементы, удовлетворяющие некоторому, неизвестному пока, условию. И сохранить отобранные элементы в другой объект.

Делегаты и анонимные функции

В версии языка C# 1.0 объявить делегат можно было только с помощью именованных методов. Способ вызова методов с использованием объектов (экземпляров) делегата описан в  статье Делегаты и методы. Вспомнив, по-видимому, что в С++ используются встроенные (in-line) функции, разработчики языка C# добавили их аналог в виде анонимных функций. В версии языка C# 2.0 (2005 год) появились …

Делегаты и анонимные функции Читать далее »

Свойства. Пример «Ввод целого числа в заданном диапазоне»

В профессиональных программах необходим контроль вводимых данных. Например, вам нужно ввести двухзначное целое число. Не важно, в каком приложении будет ввод числа, так как в C# числа получают после конвертации строки. Например, в консольном приложении: int n = Convert.ToInt32(Console.ReadLine( )); или в Windows-приложении через элемент textBox int n =Convert.ToInt32(textBox1.Text); При вводе данных ошибки могут быть …

Свойства. Пример «Ввод целого числа в заданном диапазоне» Читать далее »

Интерфейсы

В статье Абстрактные классы, методы и свойства был рассмотрен пример наследования от абстрактного класса классов-потомков и использования абстрактных методов, как шаблонов для реализации их в классах-потомках. Было отмечено, что другой вариант реализации — использование интерфейсов. Они позволяют обойтись без абстрактных классов,  но позволяют контролировать работу методов родственных классов.

Индексаторы

Вы знаете, что доступ к индивидуальным элементам, содержащимся в стандартных массивах, осуществляется через операцию индекса ([ ]).  В языке C# имеется возможность проектировать специальные классы и структуры, которые могут быть индексированы подобно стандартному массиву, посредством определения индексатора (альтернатива массиву). Если вы можете обойтись массивами, забудьте об индексаторах. Важно, что основное назначение индексатора — предоставить пользователю …

Индексаторы Читать далее »

Операции. Перегрузка операций

В языке Си шарп имеется готовый набор лексем, используемых для выполнения базовых операций над встроенными типами. Например, известно, что операция + может применяться к двум целым, чтобы дать их сумму.  Но может ли одна и та же операция + может применяться к большинству встроенных типов данных, например, для строк: string s1 = «Иванов»; string s2 …

Операции. Перегрузка операций Читать далее »

Сборка мусора и финализаторы

В статье «Типы данных» дана характеристика и назначение двух сегментов оперативной памяти: стека (stack) и управляемой кучи (heap), отмечена эффективность стека при управлении памятью (в его работу вы при всем желании вмешаться не сможете). Работа с кучей, в которой размещаются объекты, предполагает использование автоматических сборщиков мусора (Garbage collector). Сбор мусора — это симуляция бесконечной памяти …

Сборка мусора и финализаторы Читать далее »

Конструкторы

Понятие «Конструктор» (constructor) неотделимо от понятия класса. Конструкторы — это специальные функции, вызываемые автоматически при инициализации объектов. Их имена совпадают с именами классов, которым они принадлежат, и они не имеют типа возврата. У одного класса может быть более одного конструктора, различающихся сигнатурами. Конструкторы полезны для инициализации полей класса. Интересно, что компилятор создает конструктор по умолчанию …

Конструкторы Читать далее »

Свойства в C#

Свойство в языке С# – это член класса, который предоставляет механизм доступа к полю класса (чтение и запись). При использовании свойства, мы обращаемся к нему, как к полю класса, но на самом деле вызывается соответствующий неявный метод, называемый аксессором (accessor). Существует два таких метода: get (для получения данных) и set (для записи).

Классы: события, делегаты, свойства, конструкторы, финализаторы, операции, индексаторы

Данный раздел поможет Вам разобраться с событиями и член-функциями класса, отличных от методов класса, рассмотренных в предыдущем разделе.

Пролистать наверх