14.02.2017 Views

. Стиллмен, Дж. Грин - Изучаем 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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!