. Стиллмен, Дж. Грин - Изучаем 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>гируйт<strong>е</strong> свои полномочия<br />
Д <strong>е</strong>л<strong>е</strong>гаты В geiicmBuu , ,<br />
Работать с д<strong>е</strong>л<strong>е</strong>гатами л<strong>е</strong>гко, они н<strong>е</strong> тр<strong>е</strong>буют большого объ<strong>е</strong>ма кода. По- \ Г '<br />
пробу<strong>е</strong>м с их помош;ью помочь влад<strong>е</strong>льцу р<strong>е</strong>сторана рассортировать с<strong>е</strong>- J Tlj^& yK H 0H U 0,<br />
кр<strong>е</strong>тны<strong>е</strong> ингр<strong>е</strong>ди<strong>е</strong>нты с кухни ш<strong>е</strong>ф-повара.<br />
^<br />
О Добавьт<strong>е</strong> д<strong>е</strong>л<strong>е</strong>гат в новый про<strong>е</strong>кт<br />
Д<strong>е</strong>л<strong>е</strong>гаты обычно располагаются вн<strong>е</strong> классов, поэтому добавьт<strong>е</strong> к про<strong>е</strong>кту новый файл<br />
классов G e tS e c re t I n g r e d i e n t . c s и вв<strong>е</strong>дит<strong>е</strong> в н<strong>е</strong>го строку:<br />
delegate string GetSecretlngredient(int amount);<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>тр типа i n t, возвраш;а<strong>е</strong>т строку.<br />
О Добавьт<strong>е</strong> класс для п<strong>е</strong>рвого ш<strong>е</strong>ф-повара, Сюзанны<br />
Suzanne.cs сод<strong>е</strong>ржит класс, сл<strong>е</strong>дяш;ий за с<strong>е</strong>кр<strong>е</strong>тными ингр<strong>е</strong>ди<strong>е</strong>нтами, которы<strong>е</strong> использу<strong>е</strong>т<br />
Сюзанна. Он снабж<strong>е</strong>н закрытым м<strong>е</strong>тодом SuzannesSecretlngredient () с сигнатурой,<br />
совпадающ<strong>е</strong>й с GetSecretlngredient. Им<strong>е</strong><strong>е</strong>тся и пр<strong>е</strong>дназнач<strong>е</strong>нно<strong>е</strong> только для чт<strong>е</strong>ния<br />
свойство, возвращающ<strong>е</strong><strong>е</strong> GetSecretlngredient. С <strong>е</strong>го помощью остальны<strong>е</strong> объ<strong>е</strong>кты<br />
могут получить ссылку на м<strong>е</strong>тод SuzannesIngredientList ().<br />
c l a s s S u z a n n e {<br />
Взяв п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>н- p u b l i c G e t S e c r e t l n g r e d i e n t M y S e c r e t l n g r e d i e n t M e t h o d {<br />
ную am ount g e t {<br />
т о д % т в р ^ а <strong>е</strong> т = f e t u m n e w G e t S e c r e t l n g r e d i e n t ( S u z a n n e s S e c r e t l n g r e d i e n t ) ;<br />
строку, onucbi- ^<br />
бающую ce- J<br />
кр<strong>е</strong>тный ингр<strong>е</strong>- p r i v a t e s t r i n g S u z a n n e s S e c r e t l n g r e d i e n t ( i n t a m o u n t) {<br />
ди<strong>е</strong>нт. — aj, r e t u r n a m o u n t .T o S t r i n g 0 + " o u n c e s o f c l o v e s " ;<br />
}<br />
} Свойство GetSecretlngredient<br />
возвраща<strong>е</strong>т новый экз<strong>е</strong>мпляр<br />
п < _<br />
Добавьт<strong>е</strong> класс для второго ш<strong>е</strong>ф-повара. Эми ^<br />
д<strong>е</strong>л<strong>е</strong>гата GetSecretlngredient,<br />
указывающ<strong>е</strong>го на м<strong>е</strong>тод полу-<br />
М<strong>е</strong>тоды Эми работают так ж<strong>е</strong>, как м<strong>е</strong>тоды Сюзанны: / цтия с<strong>е</strong>кр<strong>е</strong>тных ингр<strong>е</strong>ди<strong>е</strong>нтов.<br />
д c l a s s Amy { М<br />
м<strong>е</strong>тод получ<strong>е</strong>- p u b l i c G e t S e c r e t l n g r e d i e n t A m y s S e c r e t l n g r e d i e n t M e t h o d (<br />
ния с<strong>е</strong>кр<strong>е</strong>тных g e t {<br />
ингр<strong>е</strong>ди<strong>е</strong>нтов, r e t u r n n e w G e t S e c r e t l n g r e d i e n t ( A m y s S e c r e t l n g r e d i e n t ) ;<br />
c которыми }<br />
работа<strong>е</strong>т Эми, }<br />
так ж<strong>е</strong> б<strong>е</strong>р<strong>е</strong>т ( p r i v a t e s t r i n g A m y s S e c r e t l n g r e d i e n t ( i n t a m o u n t) {<br />
п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нную i f (a m o u n t < Ю ) .<br />
am ount типа < r e t u r n a m o u n t .T o S t r i n g O<br />
int и возвраща- ) ^ I s e " s a r d i n e s - - y o u n e e d m o r e ! " ;<br />
em строку. Ho / r e t u r n a m o u n t .T o S t r i n g O + " c a n s o f s a r d i n e s " ;<br />
это уж<strong>е</strong> другая ч }<br />
строка. }<br />
512 глава 11