. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
дающи<strong>е</strong> и принимающи<strong>е</strong><br />
Сбязь м<strong>е</strong>)кду издат<strong>е</strong>лями и подписчиками<br />
Одним из самых сложных для понимания при изуч<strong>е</strong>нии событий явля<strong>е</strong>тся обстоят<strong>е</strong>льство, что и з д а <br />
т <strong>е</strong> л ь ( s e n d e r ) долж<strong>е</strong>н знать, како<strong>е</strong> событи<strong>е</strong> он иницииру<strong>е</strong>т, в том числ<strong>е</strong>, каки<strong>е</strong> аргум<strong>е</strong>нты он <strong>е</strong>му п<strong>е</strong>р<strong>е</strong>да<strong>е</strong>т.<br />
И п о д п и с ч и к (r e c e iv e r ) долж<strong>е</strong>н знать, какой тип возвраща<strong>е</strong>мого знач<strong>е</strong>ния и аргум<strong>е</strong>нты сл<strong>е</strong>ду<strong>е</strong>т<br />
использовать для м<strong>е</strong>тодов обработчика событий.<br />
Но связи м<strong>е</strong>жду издат<strong>е</strong>л<strong>е</strong>м и подписчиком н<strong>е</strong>т. Издат<strong>е</strong>ль иницииру<strong>е</strong>т событи<strong>е</strong> и <strong>е</strong>му вс<strong>е</strong> равно, кто на н<strong>е</strong>го<br />
подписан. А подписчику важно, что это за событи<strong>е</strong>, но вс<strong>е</strong> равно, какой объ<strong>е</strong>кт стал <strong>е</strong>го причиной. Получа<strong>е</strong>тся,<br />
что как издат<strong>е</strong>ль, так и подписчик сфокусированы на событии, но н<strong>е</strong> друг на друг<strong>е</strong>.<br />
“*Г н .й<br />
4 У<br />
Событи<strong>е</strong> BalllnPlay<br />
до/<br />
С в<br />
О бь<strong>е</strong>кт Ball н<strong>е</strong> долж<strong>е</strong>н им <strong>е</strong>т ь<br />
связи с объ<strong>е</strong>ктом Pitcher Ему<br />
вс<strong>е</strong> равно, объ<strong>е</strong>кты какого т ипа<br />
работ аю т с событи<strong>е</strong>м: Fan,<br />
Pitcher, Umpire и т. п.<br />
prtcV'®’<br />
«Мой народ хоч<strong>е</strong>т В ступить 6 к он такт с вашим народом».<br />
Вы зна<strong>е</strong>т<strong>е</strong>, что д<strong>е</strong>ла<strong>е</strong>т этот код:<br />
B a l l c u r r e n t B a ll;<br />
Он созда<strong>е</strong>т с с ы л о ч н у ю п <strong>е</strong> р <strong>е</strong> м <strong>е</strong> н н у ю на любой объ<strong>е</strong>кт B a ll.<br />
Эта п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нная мож<strong>е</strong>т указывать даж<strong>е</strong> на знач<strong>е</strong>ни<strong>е</strong> null.<br />
Событиям нужна такая ж<strong>е</strong> ссылка, но указывающая н<strong>е</strong> на объ<strong>е</strong>кт,<br />
а н а м <strong>е</strong> т о д . Событиям нужно отсл<strong>е</strong>живать список подписанных<br />
на них м<strong>е</strong>тодов. Как вы уж<strong>е</strong> вид<strong>е</strong>ли, эти м<strong>е</strong>тоды могут<br />
принадл<strong>е</strong>жать другим классам и даж<strong>е</strong> быть закрытыми. Как ж<strong>е</strong><br />
отсл<strong>е</strong>дить вс<strong>е</strong> обработчики событий, которы<strong>е</strong> будут вызываться?<br />
Для этого используются д <strong>е</strong> л <strong>е</strong> г а т ы (d e le g a te ).<br />
Д<strong>е</strong>-л<strong>е</strong>-гат, сущ.<br />
ч<strong>е</strong>лов<strong>е</strong>к, им<strong>е</strong>ющий<br />
полномочия пр<strong>е</strong>дставлять<br />
других, пр<strong>е</strong>зид<strong>е</strong>нт<br />
отправил д<strong>е</strong>л<strong>е</strong>гата<br />
на саммит.<br />
510 глава 11