14.02.2017 Views

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

чт<strong>е</strong>ни<strong>е</strong> и запись файлов<br />

___ О тр<strong>е</strong>д актиру<strong>е</strong>м програм м у Б р а й а н а E x c u se M a n a g e r таким образом , чтобы она<br />

а Ж Н б Н К б н ач ала р аботать с двои чны м и ф айлам и, сод<strong>е</strong>рж ащ им и с<strong>е</strong>риали зован н ы <strong>е</strong> объ ­<br />

<strong>е</strong>кты E x c u s e .<br />

О<br />

О<br />

С<strong>е</strong>риализация класса Excuse<br />

П ом <strong>е</strong>тьт<strong>е</strong> класс E x c u s e а тр и б уто м [ S e r i a l i z a b l e ] . П о тр <strong>е</strong> б у<strong>е</strong>тся<br />

такж <strong>е</strong> доб авить с тр о ч к у u s i n g :<br />

u s i n g S y s t e m . R u n t i m e . S e r i a l i z a t i o n . F o r m a t t e r s . B i n a r y ;<br />

О тр<strong>е</strong>дактируйт<strong>е</strong> м<strong>е</strong>тод Excuse.Save О<br />

Т <strong>е</strong>п<strong>е</strong>рь м <strong>е</strong>тод S a v e о вм <strong>е</strong>сто и спользо вания о б ъ <strong>е</strong>кта S t r e a m W r i t e r ,^ ^ ^ <strong>е</strong> в о <strong>е</strong> Т л о в о<br />

д о л ж <strong>е</strong> н о тк р ы в а ть ф айл и с<strong>е</strong> р иализовы вать <strong>е</strong>го. Вам н у ж н о п о н я ть , ка-<br />

КИМ образом п р о и с х о д и т д <strong>е</strong>с<strong>е</strong>риализация т<strong>е</strong> кущ <strong>е</strong> го класса.<br />

О тр<strong>е</strong>дактируйт<strong>е</strong> м <strong>е</strong>тод Excuse.OpenFile О<br />

Вам п отр<strong>е</strong>бу<strong>е</strong>тся в р <strong>е</strong> м <strong>е</strong> н н ы й объ<strong>е</strong>кт E x c u s e , в к о т о р ы й буд<strong>е</strong>т п р о и с ­<br />

х о д и ть д<strong>е</strong>с<strong>е</strong>риализация, посл<strong>е</strong> ч <strong>е</strong> го <strong>е</strong> го поля с к о п и р у ю т с я в т<strong>е</strong> к у щ и й<br />

класс.<br />

Подсказка: Используйт<strong>е</strong><br />

возвраща<strong>е</strong>т<br />

ссылку на<br />

эт от ж <strong>е</strong> класс.<br />

Отр<strong>е</strong>дактируйт<strong>е</strong> срорму<br />

М ы больш <strong>е</strong> н<strong>е</strong> работа<strong>е</strong>м с т<strong>е</strong> к с т о в ы м и ф айлам и, п о это м у р а сш и р <strong>е</strong> н и <strong>е</strong> . t x t н<strong>е</strong> подходит.<br />

И зм <strong>е</strong> н и т<strong>е</strong> о к н а диалога, заданны <strong>е</strong> п о ум о л ч а н и ю им <strong>е</strong> на ф айлов и код п о и ска<br />

п а п к и , подстави в туда разр<strong>е</strong>ш <strong>е</strong>ни<strong>е</strong> * . e x c u s e .<br />

Потрясающ<strong>е</strong>! В<strong>е</strong>сь код для<br />

сохран<strong>е</strong>ния и открытия оправданий находится внутри<br />

класса Excuse. Изм<strong>е</strong>н<strong>е</strong>ния вносились в класс, форму почти<br />

н<strong>е</strong> трогали. И форма работа<strong>е</strong>т вн<strong>е</strong> зависимости от того, как класс<br />

сохраня<strong>е</strong>т данны<strong>е</strong>. Она просто п<strong>е</strong>р<strong>е</strong>да<strong>е</strong>т имя (райла, и индюрмация<br />

сохраня<strong>е</strong>тся. ~ '<br />

Разум <strong>е</strong><strong>е</strong>тся! Код так л<strong>е</strong>гко р<strong>е</strong>дактиру<strong>е</strong>тся благодаря<br />

инкапсуляции класса.<br />

К ласс, в к о то р о м вс<strong>е</strong> в н у тр <strong>е</strong> н н и <strong>е</strong> о п <strong>е</strong> р а ц и и с к р ы т ы о т остальн<br />

о й ч а сти п р о гр а м м ы , а о т к р ы т ы м явля<strong>е</strong>тся то л ь к о т о , ч т о<br />

н<strong>е</strong>обхо д и м о , назы ва<strong>е</strong>тся инкапсулированным. В п р о гр а м м <strong>е</strong> ’<br />

Excuse IM anager ф орм а н<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>.<br />

И м <strong>е</strong> н н о п о это м у в ы см о гл и т а к л <strong>е</strong> гк о о тр <strong>е</strong> д а кти р о в а ть способ<br />

р а б о ты класса с ф айлам и. Ч <strong>е</strong>м лучш <strong>е</strong> и н ка п сул и р о в а н класс,<br />

т<strong>е</strong>м п р о щ <strong>е</strong> вам р аботать с н и м в будущ<strong>е</strong>м.<br />

ПoмнumeJ что инкапсуляция<br />

явля<strong>е</strong>тся<br />

одним из ч<strong>е</strong>тыр<strong>е</strong>х<br />

основных при -<br />

- знаков объ<strong>е</strong>ктноори<strong>е</strong>нтированного<br />

!лрограммирования?<br />

Вот наглядный прим<strong>е</strong>р<br />

того_, каким образом<br />

она обл<strong>е</strong>гча<strong>е</strong>т<br />

нам жизнь.<br />

дальш<strong>е</strong> > 447

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

Saved successfully!

Ooh no, something went wrong!