Учебно-методический комплекс общее количество часов 58 ч. Лекции 28 ч


Download 2.46 Mb.
bet54/91
Sana19.10.2023
Hajmi2.46 Mb.
#1709453
TuriУчебно-методический комплекс
1   ...   50   51   52   53   54   55   56   57   ...   91
Bog'liq
Язык программирования C#

12.4. Анонимные методы

Очень удобным нововведением C# 2.0 являются анонимные методы. Анонимные методы создаются, и используется посредствам делегатов. Анонимные методы, как и методы, имеющие имя, могут принимать и возвращать значения.


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


delegate void VoidDel();


delegate float FloatStringDel(string s);
Лист. 3.12

Теперь покажем, как можно инициализировать эти делегаты анонимными методами и затем вызвать их.


class Program
{
static void Main(string[] args)
{
VoidDel vd = delegate()
{
Console.WriteLine("Вызываем делегат vd");
};

FloatStringDel fsd = delegate(string s)


{
Console.WriteLine("Вызвакм fsd с параметром " + s);
return 0;
};

vd();

fsd("Параметр");
}
}
Лист. 3.13

В результате, как и следовало, ожидать, получаем.


Вызываем делегат vd


Вызвакм fsd с параметром Параметр
Вывод. 3.3


12.5. Понятие событий

События обеспечивают механизм посредствам, которого объекты могут сообщить об изменении своего состояния и обмениваться между собой данными. Этот механизм называется генерацией событий. События могут быть сгенерированы по многим причинам, например: при изменении значений полей объекта, при завершении длительного процесса, сетевые приложения могут вызвать событие при удачном соединении с сервером или, наоборот, при неполадках в сети.


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


События представляют собой расширенный член класса, для их определения используется ключевое слово event, перед которым ставятся нужные спецификаторы, а за ним должен стоять тип делегата и имя этого события. Общая форма для определения делегата имеет следующий вид.


[спецификаторы] event имя_делегата имя_события;


В этой схеме спецификаторы – это любые спецификаторы доступа и памяти, имя_делегата – имя базового для события делегата, а имя имя_события – собственно имя по которому к этому событию можно обратиться.



Download 2.46 Mb.

Do'stlaringiz bilan baham:
1   ...   50   51   52   53   54   55   56   57   ...   91




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling