. Стиллмен, Дж. Грин - Изучаем 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>н<strong>е</strong>ния ключ<strong>е</strong>бых слоб try/catch<br />
Сл<strong>е</strong>ду<strong>е</strong>т п о м н и ть , ч т о п р и о б н а р у ж <strong>е</strong> н и и и с к л ю ч <strong>е</strong> н и я в блок<strong>е</strong> t r y<br />
остальная часть кода и гн о р и р у <strong>е</strong> тся. П р о гр а м м а н<strong>е</strong>м <strong>е</strong>дл<strong>е</strong>нно п<strong>е</strong>р<strong>е</strong>х<br />
о д и т на п <strong>е</strong> рвую с тр о ч к у блока c a tc h . Впроч<strong>е</strong>м, вы мож<strong>е</strong>т<strong>е</strong> н<strong>е</strong> <strong>е</strong><strong>е</strong>рить<br />
нам на слово...<br />
^<br />
О ш Л а Д ь ш <strong>е</strong> э щ о !<br />
В<strong>е</strong>сь п р <strong>е</strong> д о ставл <strong>е</strong> н н ы й в э т о й глав<strong>е</strong> код н у ж н о в с тр о и ть в о б р а б о т ч и к с о б ы т и й к н о п к и<br />
R a n d o m Excuse. Т о чку о станова сл<strong>е</strong>ду<strong>е</strong>т п о м <strong>е</strong> сти ть в п <strong>е</strong> р вую строчку. И запусти ть п р о гр а м <br />
му. Щ <strong>е</strong> л к н и т <strong>е</strong> на к н о п к <strong>е</strong> F o ld e r и в ы б <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> н и <strong>е</strong> .excuse). Щ <strong>е</strong> л к <br />
н и т <strong>е</strong> на к н о п к <strong>е</strong> R a n d o m Excuse, а зат<strong>е</strong>м ш <strong>е</strong>сть раз щ <strong>е</strong> л кн и т<strong>е</strong> на к н о п к <strong>е</strong> Step O v e r (и л и наж<br />
м и т<strong>е</strong> F10) для п<strong>е</strong>р<strong>е</strong>хода к оп<strong>е</strong>ратору, вы зы ваю щ <strong>е</strong>м у к о н с тр у к т о р E x c u s e . В о т ка к долж <strong>е</strong>н<br />
вы гляд<strong>е</strong>ть ваш экр а н на это м этап<strong>е</strong>:<br />
Э т о точка<br />
останова, которую<br />
МЫ пом<strong>е</strong> -<br />
стили в п<strong>е</strong>рвую<br />
строчку одра - ~~<br />
ботчика событий.<br />
Нажимайт<strong>е</strong> Рй-О,<br />
пока н<strong>е</strong> дойд<strong>е</strong>т<strong>е</strong><br />
до строки, пр<strong>е</strong>дш<strong>е</strong>ствующ<strong>е</strong>й<br />
^<br />
созданию объ<strong>е</strong>кта<br />
Excuse.<br />
p r i v a t e v o i d r a n d c n B E x c u s e _ C l i c k ( o b j e c t s e n d e r ^ E v e n tA r g s e )<br />
{<br />
s t r i n g [ j f i l e n a m e s = P i r e c t o r y . 6 e t F i l e 5 ( s e l e c t e d F o I r f e r . " * . e x c o s e " ) j<br />
i f ( f i l e N a i s e s . L e n g t h = = 0 )<br />
}<br />
t r y<br />
{<br />
M e s s a g e B o x .S h o w C ’P l e a s e s p e c i f y a f o l d e r w i t h e x c u s e f i l e s i n i t ” ,<br />
[if (CheckChanged{) =« tr u e )<br />
{<br />
"H o e x c u s e f i l e s f o u n d " ) ;<br />
c u r r e n t E x c u s e = n ew E x c u s e ( r a n d a ® , s e l e c t e d F o l d e r ) j<br />
U p d a t e F o r r e ( f a l s e ) ;<br />
}<br />
}<br />
Используйт<strong>е</strong> команду Step<br />
Over (Fio) для обхода м <strong>е</strong>-<br />
c a t c h ( s e r i a i i z a t i o n e x c e p t i o n ) moda Ch.eckCkanged().<br />
{<br />
}<br />
M e s s a g e B o x .Show(<br />
" Y o u r e x c u s e f i l e w a s i n v a l i d . ” ,<br />
" U n a b l e t o o p e n a ra n d c M e x c u s e " ) ;<br />
© Н а ж м и т<strong>е</strong> F I 1 для п р осм о тра оп<strong>е</strong>ратора new. ОтлаДник. пом <strong>е</strong> сти т ж <strong>е</strong>лтую п олоску над стр о ко й<br />
объявл<strong>е</strong>ния в код<strong>е</strong> констр укто ра E x c u s e . Н а ж м и т<strong>е</strong> F11, ч то б ы попасть в м<strong>е</strong>тод O p e n F ile ()<br />
и посм отр<strong>е</strong>ть, ч т о случится на стр очк<strong>е</strong> D e s e r i a l i z e { ) .<br />
Посл<strong>е</strong> оп<strong>е</strong>ратора<br />
new отладчик начина<strong>е</strong>т<br />
просмат ривать<br />
код констриктора.<br />
^jublic Excuse(Random random, string folder)<br />
{<br />
string[] fileNames = D ir e c to r y .GetFiles(folder, "».excuse");<br />
OpenFile(fileNanies [random,Next(fileNaraes.Length) ]);<br />
><br />
468 глава 10