Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Дополн. к лекции 2,3.doc(программирование).doc
Скачиваний:
12
Добавлен:
10.06.2015
Размер:
443.39 Кб
Скачать
    1. Делегаты

Делегат — это тип, который определяет подпись метода и его можно связать с любым методом с совместимой подписью. Метод можно запустить (или вызвать) с помощью делегата. Делегаты используются для передачи методов в качестве аргументов к другим методам. Обработчики событий - это методы, вызываемые с помощью делегатов.

Объявление типа делегата аналогично сигнатуре метода. Оно имеет возвращаемое значение и некоторое число параметров какого-либо типа. Делегат используется для объявления ссылочного типа, который может быть использован для инкапсуляции именованного или анонимного метода. Делегаты аналогичны используемым в языке C++ указателям на функции, но являются типобезопасными и безопасными.

Создание и использование делегатов. Во многих случаях, таких как методы обратного вызова, делегат представляет только один метод, и единственное, что нужно сделать — создать и вызвать делегат.

Делегат определяется так

public delegate void Имя(ИмяОбъекта);

Так как в C# все является классом, то и делегат в момент компиляции превращается в класс, наследуемый от system.Multicastdelegate.

    1. Типы значений

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

Все типы значений являются неявными производными от System .ValueType .

Типы значений состоят из двух основных категорий:

  • Cтруктура struct. Это тип значения, который используется для инкапсуляции небольших групп связанных переменных, например координат точки.

  • Перечисление enum. Оно состоит из набора именованных констант, который называется списком перечислителя. По умолчанию первому перечислителю задан номер 0, а номер каждого последующего увеличивается на 1. Пример: enum Days {Sat, Sun, Mon, Tue, Wed, Thu, Fri};

Структуры делятся на следующие категории:

  • Числовые типы. Они могут быть целочисленные, вещественные - с плавающей запятой, десятичные.

  • Логический bool. Ключевое слово bool является псевдонимом свойства System .Boolean . Оно используется для объявления переменных для хранения логических значений, true и false.

  • Пользовательские структуры.

    1. Ссылочные типы

Переменные ссылочных типов, называемые объектами, сохраняют ссылки на фактические данные. В данном разделе описаны следующие ключевые слова, используемые для объявления ссылочных типов:

  • Класс class.

  • Интерфейс interface.

  • Делегат delegate.

  • Динамический dynamic.

  • Объект object.

  • Строкаstring.

    1. Тип dynamic

Тип dynamicпозволяет пропускать проверки типов во время компиляции операции, в которых он применяется . Вместо этого эти операции разрешаются во время выполнения. Тип упрощает доступ к API автоматизации Office и к динамическим API.

    1. Тип object

Тип objectпредставляет собой псевдоним для Object в платформе .NET Framework. В унифицированной системе типов C# все типы, предопределенные и пользовательские, ссылочные типы и типы значений, наследуют непосредственно или косвенно от Object. Переменным типа object можно назначать значения любых типов. Когда переменная типа значения преобразуется в объект, говорят, что она упаковывается. Когда переменная типа object преобразуется в тип значения, говорят, что она распаковывается.