Net framework 5, а также среды Visual Studio 2012 и C#


Обратный вызов экземплярных методов



Download 6,27 Mb.
Pdf ko'rish
bet319/658
Sana12.06.2023
Hajmi6,27 Mb.
#950840
1   ...   315   316   317   318   319   320   321   322   ...   658
Bog'liq
CLR via C Programmirovanie na platforme Microsoft NET Framework 4 5 na yazyke C

Обратный вызов экземплярных методов
Мы рассмотрели процедуру вызова при помощи делегатов статических методов, 
но они позволяют вызывать также экземплярные методы заданного объекта. Рас-
смотрим механизм этого вызова на примере метода 
InstanceDelegateDemo
из по-
казанного ранее кода.
Обратите внимание, что объект 
p
типа 
Program
создается внутри метода 
InstanceDelegateDemo
. При этом у него отсутствуют экземплярные поля и свой-
ства, поскольку он сконструирован с демонстрационными целями. Когда при вызове 
метода 
Counter
создается делегат 
Feedback
, его конструктору передается объект 
p.FeedbackToFile
. В результате делегат превращается в оболочку для ссылки на 
метод 
FeedbackToFile
, который является не статическим, а экземплярным мето-


439
Тонкости.использования.делегатов
дом. Когда метод 
Counter
обращается к методу обратного вызова, который задан 
аргументом 
fb
, вызывается экземплярный метод 
FeedbackToFile
, а адрес только 
что созданного объекта 
p
передается этому методу в качестве неявного аргумента 
this
.
Метод 
FeedbackToFile
отличается от методов 
FeedbackToConsole
и 
FeedbackTo-
MsgBox
тем, что открывает файл и дописывает в его конец строку (созданный им 
файл 
Status
находится в папке 
AppBase
приложения).
Как видите, делегаты могут служить оболочкой как для статических, так и для 
экземплярных методов. В последнем случае делегат должен знать, какой экзем-
пляр объекта будет обрабатывать вызываемый им метод. Создавая оболочку для 
экземплярного метода, вы предоставляете коду внутри объекта доступ к различным 
членам экземпляра объекта. Это означает наличие у объекта состояния, которое 
может использоваться во время выполнения метода обратного вызова.

Download 6,27 Mb.

Do'stlaringiz bilan baham:
1   ...   315   316   317   318   319   320   321   322   ...   658




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