- •1)Классы: индексаторы, операции классов.
- •Метод Main
- •Операции класса
- •Унарные операции
- •Implicit operator тип ( параметр ) // неявное преобразование
- •Вложенные типы
- •2) Интерфейсы: синтаксис, реализация, операции is и as.
- •Сравнение объектов (интерфейс iComparable)
- •Реализация интерфейса
- •Операции is и as
- •Перебор объектов (интерфейс iEnumerable) и итераторы
- •4) Структуры. Перечисления.
- •Операции с перечислениями
- •5)Делегаты. Передача делегатов в методы.
- •Передача делегатов в методы
- •6)Паттерн «наблюдатель».
- •7) События. Использование стандартных делегатов.
- •8) Общая характеристика многопоточных приложений.
- •9) Класс Thread.
- •Основные элементы
- •Interrupt Метод Прерывает работу текущего потока
- •10) Асинхронные делегаты.
- •11) Общая характеристика процессов ввода-вывода.
- •Основные классы пространства имен System.Ю
- •Выполнять обмен с внешними устройствами можно на уровне:
- •12) Потоки байтов.
- •Элементы класса Stream
- •14) Потоки символов.
- •15) Двоичные потоки.
- •16) Консольный ввод-вывод.
- •17) Работа с каталогами и файлами.
- •Свойства класса FileSystemlnfo
- •18) Сохранение объектов (сериализация)
- •22)Атрибуты.
- •23)Пространства имен.
- •Директивы препроцессора
- •25) Абстрактные структуры данных.
- •Интерфейсы пространства имен System.Collections
- •Коллекции пространства имен System.Collections
- •Основные элементы класса ArrayList
- •Item Свойство Получить или установить значение элемента по заданному индексу
- •27) Классы-прототипы.
- •28) Обобщенные методы. Частичные типы. Обнуляемые типы.
- •29) Основные особенности Windows-приложений.
- •30) Событийно-управляемое программирование.
- •31) Шаблон Windows-приложения.
- •Основные типы Windows.Forms
- •Некоторые основные свойства класса Control
- •33) Класс Form.
- •Некоторые свойства класса Form
- •34) Диалоговые окна.
- •35) Класс Application.
- •Некоторые основные элементы класса Application
- •36) Введение в графику.
- •Основными объектами, которые при этом используются, являются объекты классов:
- •37) Утилитарные типы System.Drawing.
- •Некоторые базовые типы пространства имен System.Drawing
Операции с перечислениями
С переменными перечисляемого типа можно выполнять арифметические операции (+, -, ++, --), логические поразрядные операции (*, &, |, ~), сравнивать их с помощью операций отношения (<, <=, >, >=, ==, !=) и получать размер в байтах (sizeof).
При использовании переменных перечисляемого типа в целочисленных выражениях и операциях присваивания требуется явное преобразование типа. Переменной перечисляемого типа можно присвоить любое значение, представимое с помощью базового типа, то есть не только одно из значении, входящих в тело перечисления. Присваиваемое значение становится новым элементом перечисления.
5)Делегаты. Передача делегатов в методы.
Делегат — это вид класса, предназначенный для хранения ссылок на методы. Де легат, как и любой другой класс, можно передать в качестве параметра, а затем вызвать инкапсулированный в нем метод. Делегаты используются для поддержки событий, а также как самостоятельная конструкция языка.
Описание делегата задает сигнатуру методов, которые могут быть вызваны с его помощью:
[ атрибуты ] [ спецификаторы ] delegate тип имя_делегата ( [ параметры ] )
Спецификаторы делегата имеют тот же смысл, что и для класса, причем допускаются только спецификаторы new, public, protected, internal и private.
Тип описывает возвращаемое значение методов, вызываемых с помощью делегата, а необязательными параметрами делегата являются параметры этих методов. Делегат может хранить ссылки на несколько методов и вызывать их поочереди естественно, что сигнатуры всех методов должны совпадать.
Пример описания делегата:
public delegate void D ( int i );
Объявление делегата можно размещать непосредственно в пространстве имен или внутри класса.
Для того чтобы воспользоваться делегатом, необходимо создать его экземпляр и задать имена методов, на которые он будет ссылаться. При вызове экземпляра делегата вызываются все заданные в нем методы.
Делегаты применяются в основном для следующих целей:
• получения возможности определять вызываемый метод не при компиляции, а динамически во время выполнения программы;
• обеспечения связи между объектами по типу «источник — наблюдатель»;
• создания универсальных методов, в которые можно передавать другие методы;
• поддержки механизма обратных вызовов.
Использование делегата имеет тот же синтаксис, что и вызов метода. Если делегат хранит ссылки на несколько методов, они вызываются последовательно в том порядке, в котором были добавлены в делегат.
Добавление метода в список выполняется либо с помощью метода Combine, унаследованного от класса System.Delegate, либо, с помощью перегруженной операции сложения.
Передача делегатов в методы
Делегат можно передавать в методы в качестве параметра. Таким образом обеспечивается функциональная параметризация: в метод можно передавать не только различные данные, но и различные функции их обработки. Функциональная параметризация применяется для создания универсальных методов и обеспечения возможности обратного вызова.
В качестве простейшего примера универсальною метода можно привести метод вывода таблицы значений функции, в который передается диапазон значений аргумента, шаг его изменения и вид вычисляемой функции. Этот пример приво дится далее.
Обратный вызов (callback) представляет собой вызов функции, передаваемое в другую функцию в качестве параметра.
