C# для начинающих Пахомов Б. И



Download 8,15 Mb.
Pdf ko'rish
bet189/266
Sana20.04.2022
Hajmi8,15 Mb.
#567200
1   ...   185   186   187   188   189   190   191   192   ...   266
Bog'liq
C# for beginners


Часть II. Объектно-ориентированное программирование 
второго делегата — объект 
d2
для вызова второго обработчика события. 
Потом с помощью операции 
+=
и происходит регистрация обоих со- 
бытий. 
Мы могли бы не объявлять двух делегатов, а воспользоваться одним. 
А к нему присовокупить два метода: 
MyHandler1 d1=new MyHandler1(OnHandler1); 
MyHandler1 d2=new MyHandler1(OnHandler2); 
То есть тогда бы в списке вызовов делегата было бы два метода, а не по 
одному, как в нашем примере. Тогда бы, при желании, мы могли бы 
один метод исключить из списка вызовов, применив операцию 
-=
. На-
пример, 
b.Event2 -=d2; 
Анонимные методы 
Анонимными
являются методы, у которых нет имени. Это один из спо-
собов создать безымянный блок программы, который будет связан
с конкретным делегатом, т. е. станет выполняться через делегата. При-
мер анонимного метода показан в программе листинга 13.3, а результат 
работы — на рис. 13.3. 
Листинг 13.3 
/* Created by SharpDevelop. 
* User: user 
* Date: 22.12.2012 
* Time: 15:44 

* To change this template use Tools | Options | Coding | 
* Edit Standard Headers. */ 
using System; 
using System.IO; 
namespace app59_anonim1 

static class A 

// Сигнатура делегата 
public delegate void Anonim2(int start, int finish);
public static int Speed = 150; 


Глава 13. Делегаты и события 
303 
// Создадим анонимный метод, который выведет нам 
// на консоль изменение скорости автомобиля
// на отрезке в 10 км. 
// Используем анонимный метод: в делегате, 
// по определению, указывается вызываемый им метод, 
// а здесь мы просто задаем блок программы вместо 
// метода, который должен исполнить делегат 

class Program 

public static void Main() 

Console.WriteLine("Анонимный метод\nИзменение " + 
"скорости автомобиля"); 
A.Anonim2 anonim2 = delegate(int a, int b) 

for (int i = a; i <= b; i++) 
Console.Write("Скорость автомобиля на {0} " + 
"километре:{1}\n", i, A.Speed — (b-i)); 
}; 
anonim2(1, 10); 
Console.Read(); 



Рис. 13.3. 
Расчет по анонимному методу 


304 
Download 8,15 Mb.

Do'stlaringiz bilan baham:
1   ...   185   186   187   188   189   190   191   192   ...   266




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

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish