Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Lektsia_4VP

.pdf
Скачиваний:
9
Добавлен:
27.05.2015
Размер:
146.03 Кб
Скачать

Тема 3

Делегаты и события

Делегаты и события

Обратный вызов (callback) представляет собой вызов

функции, передаваемой в другую функцию в качестве

параметра.

Делегаты и события

Делегаты и события

public delegate double ProcessResults(double x, double у); public delegate void Del(string message);

public static void DelegateMethod(string message)

{

System.Console.WriteLine(message);

}

Del handler = DelegateMethod; handler("Hello World");

Делегаты и события

Делегаты и события

Класс 1

Класс 2

 

Подписчик 1

 

Издатель

Класс 3

Подписчик 2

Делегаты и события

public delegate void EventHandler(Object sender, EventArgs e);

Объявление события:

public event EventHandler AgeChanged;

Генерация события:

AgeChanged(this, new EventArgs()); - фактически просто вызов этого события

Такой вызов метода пройдет без ошибок только в том случае, если есть хотя бы один подписчик для нашего события. Если подписчиков нет, то AgeChanged будет равна нулю, и данный вызов сгенерирует исключительную ситуацию.

Делегаты и события

try

{

AgeChanged(this, new EventArgs());

}

catch (Exception)

{

//возникло исключение

}

Однако, это не самый лучший вариант!!!

Делегаты и события

if (AgeChanged!=null)

{

AgeChanged(this, new EventArgs());

}

Делегаты и события

int _age; public int Age

{

get { return _age; } set

{

if (value<0)

{

throw new Exception("Возраст не может быть отрицательным");

}

_age = value;

if (AgeChanged!=null)

{

AgeChanged(this, new EventArgs());

}

}

}

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]