. Стиллмен, Дж. Грин - Изучаем C#, 2-е издание
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
инкапсуляция<br />
О<br />
Этот hAtmob вызыва<strong>е</strong>мся<br />
вс<strong>е</strong>ми м <strong>е</strong>-<br />
тоЗаМи, связанными<br />
с формой, им<strong>е</strong>нно<br />
т а к обновля<strong>е</strong>тся<br />
Сд<strong>е</strong>ла<strong>е</strong>м так, чтобы итоговая сумма автоматич<strong>е</strong>ски м<strong>е</strong>нялась при изм<strong>е</strong>н<strong>е</strong>нии<br />
флажков и показаний сч<strong>е</strong>тчика Ыит<strong>е</strong>г1сирВо1А?п. Для этого вам потр<strong>е</strong>бу<strong>е</strong>тся м<strong>е</strong>тод,<br />
отображающий сумму.<br />
Добавим <strong>е</strong>го к Forml ( ).<br />
NumericUpDown:<br />
зн а ч <strong>е</strong> н и <strong>е</strong> м <strong>е</strong> т к и Cost. d e c im a l C o st =<br />
c o s t L a b e l . T ext<br />
При двойном<br />
щ<strong>е</strong>лчк<strong>е</strong> на<br />
кнопк<strong>е</strong> ИСР<br />
добавля<strong>е</strong>т обработчик<br />
события<br />
Click.<br />
О<br />
p r i v a t e v o i d D is p la y D in n e r P a r t y C o s t ()<br />
{<br />
Присвойт<strong>е</strong> м<strong>е</strong>тк<strong>е</strong>,<br />
отображающ<strong>е</strong>й<br />
ц<strong>е</strong>ну, имя costLabel.<br />
O h буд<strong>е</strong>т вызываться п р и щ <strong>е</strong>лчк<strong>е</strong> на эл<strong>е</strong>м <strong>е</strong>н т<strong>е</strong><br />
М<strong>е</strong>тод рассчитыва<strong>е</strong>т ст о-<br />
" р <strong>е</strong> з у л ь т а т м <strong>е</strong>тк<strong>е</strong> Cost.<br />
d in n e r p a r t y .C a lc u la t e C o s t ( c h e c k B o x 2 . Checked)<br />
= C o s t .T o S t r in g ( " c " ) ;<br />
Аргум<strong>е</strong>нт "с” м<strong>е</strong>тода<br />
ToStringO отобража<strong>е</strong>т в а л ю<br />
с использовани<strong>е</strong>м принятого<br />
по соглаш<strong>е</strong>нию символа.<br />
t<br />
Знач<strong>е</strong>ни<strong>е</strong> true появля-<br />
Healthy Option,<br />
Со<strong>е</strong>диним пол<strong>е</strong> NumericUpDown с п<strong>е</strong>р<strong>е</strong>м<strong>е</strong>нной Num berOfPeople, принадл<strong>е</strong>жащ<strong>е</strong>й<br />
классу D in n e rp a rty , чтобы в форм<strong>е</strong> начала отображаться сумма<br />
расходов. Дважды щ<strong>е</strong>лкнит<strong>е</strong> на эл<strong>е</strong>м<strong>е</strong>нт<strong>е</strong> NumericUpDown, в код буд<strong>е</strong>т добавл<strong>е</strong>н<br />
обработчик событий (event handler). Так называ<strong>е</strong>тся м<strong>е</strong>тод, запуска<strong>е</strong>мый<br />
при каждом изм<strong>е</strong>н<strong>е</strong>нии эл<strong>е</strong>м<strong>е</strong>нта управл<strong>е</strong>ния. Он сбросит колич<strong>е</strong>ство<br />
гост<strong>е</strong>й. Впишит<strong>е</strong> сл<strong>е</strong>дующий код:<br />
p r i v a t e<br />
{<br />
v o id<br />
nu m ericU pD ow nl_V alueC hanged(<br />
o b j e c t se n d e r , E ven tA rgs e)<br />
d in n e rp a rty .N u m b er O fP e o p le (i n t ) num ericU pD ow nl. V a lu e ;<br />
^ D is p la y D in n e r P a r t y C o s t ( );<br />
J<br />
C_ Знач<strong>е</strong>ни<strong>е</strong> numericUpPown-Value<br />
принадл<strong>е</strong>жит типу Decimal,<br />
поэтому тр<strong>е</strong>бу<strong>е</strong>тся оп<strong>е</strong>рация<br />
прив<strong>е</strong>д<strong>е</strong>ния типов.<br />
Ой... код сод<strong>е</strong>ржит ошибку. Вы <strong>е</strong><strong>е</strong> видит<strong>е</strong>? Если н<strong>е</strong>т, н<strong>е</strong> волнуйт<strong>е</strong>сь. Скоро мы<br />
вс<strong>е</strong> объясним!<br />
Из формы м<strong>е</strong>тоду<br />
П<strong>е</strong>рвый м<strong>е</strong>тод рассчит^.,а<br />
п<strong>е</strong>р<strong>е</strong>да<strong>е</strong>тся ло -<br />
^ ^ ^ ‘^Мость<br />
гич<strong>е</strong>ско<strong>е</strong> знач<strong>е</strong>ни<strong>е</strong> \ второй<br />
fancyBox.Checked.<br />
кон<strong>е</strong>чную сумму в форм<strong>е</strong>.<br />
Дважды щ <strong>е</strong>лкнит<strong>е</strong> на флажк<strong>е</strong>(РапсуВ<strong>е</strong>сога11оп5’у уб<strong>е</strong>дит<strong>е</strong>сь, что<br />
сначала он вызыва<strong>е</strong>т м<strong>е</strong>тод C alcuiacscC igiC C fD ecSrations (), а потом<br />
м<strong>е</strong>тод D lspla^diiB i^erPartyC G St (). Зат<strong>е</strong>м дважды щ<strong>е</strong>лкнит<strong>е</strong><br />
на флажк<strong>е</strong> ^Healthy Option? и уб<strong>е</strong>дит<strong>е</strong>сь, что он сначала вызыва<strong>е</strong>т<br />
м<strong>е</strong>тод S e tH e a lth y O p tio ^ ) класса D in n e rP a rty , а зат<strong>е</strong>м м<strong>е</strong>тод<br />
D isp la y D in n e rP a rty C o st ( ) /<br />
дальш<strong>е</strong> > 199