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>йс IDisposable<br />

М н о ж <strong>е</strong> с тв о классов .N E T р<strong>е</strong>ализу<strong>е</strong>т к р а й н <strong>е</strong> п о л <strong>е</strong> зн ы й и н т <strong>е</strong> р ­<br />

ф <strong>е</strong>йс I D i s p o s a b l e . О н с о д <strong>е</strong> р ж и т в с <strong>е</strong> г о о д и н м <strong>е</strong>тод Dispose О .<br />

Э то т инт<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>ния работы . В<strong>е</strong>дь р а с ­<br />

п р <strong>е</strong> д <strong>е</strong> л <strong>е</strong> н н ы <strong>е</strong> р <strong>е</strong> с у р с ы н<strong>е</strong> освобож д аю тся сам остоят<strong>е</strong>льно.<br />

Для э т о го и м тр<strong>е</strong>бу<strong>е</strong>тся м <strong>е</strong>тод D i s p o s e ( ) .<br />

В оспользу<strong>е</strong>м ся ф ун кц и <strong>е</strong> й И С Р G o То D e fin itio n для п р о см о тр а<br />

опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>ния и н т<strong>е</strong>рф <strong>е</strong> й са I D i s p o s a b l e . В в<strong>е</strong>дит<strong>е</strong> «ID isposable»<br />

в п р о и зволь н о м м<strong>е</strong>ст<strong>е</strong> в н у тр и класса, щ <strong>е</strong> л кн и т<strong>е</strong> на э т о й с т р о ч ­<br />

к<strong>е</strong> п р а в о й к н о п к о й м ы ш и и в ы б р и т<strong>е</strong> в м <strong>е</strong> ню ком анду G o То<br />

D e fin itio n . О т к р о <strong>е</strong> тс я вкладка с кодом . В о т ч т о в ы увид ит<strong>е</strong>:<br />

При объявл<strong>е</strong>нии<br />

о^<strong>е</strong>ктов в разд<strong>е</strong>л<strong>е</strong><br />

using вызов м<strong>е</strong>тода<br />

Dispose ( ) таких объ<strong>е</strong>ктов<br />

буд<strong>е</strong>т осущ<strong>е</strong>ствляться<br />

автоматич<strong>е</strong>ски.<br />

namespace System<br />

{<br />

// Кратко<strong>е</strong> описани<strong>е</strong>:<br />

Многи<strong>е</strong> классы распр<strong>е</strong>д<strong>е</strong>ляют м<strong>е</strong>жду собой<br />

таки<strong>е</strong> важны<strong>е</strong> р<strong>е</strong>сурсы как память,<br />

файлы и други<strong>е</strong> объ<strong>е</strong>кты. Они со<strong>е</strong>диня- ^<br />

ются с этими р<strong>е</strong>сурсами и н<strong>е</strong> разрывают<br />

связь, пока н<strong>е</strong> получат сигнал, что<br />

работа законч<strong>е</strong>на.<br />

II Да<strong>е</strong>т м<strong>е</strong>тод освобожд<strong>е</strong>ния распр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нных р <strong>е</strong> с у р с о в .<br />

public interface IDisposable<br />

{<br />

// Кратко<strong>е</strong> описани<strong>е</strong>:<br />

// Выполня<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>мых р<strong>е</strong>сурсов<br />

void Dispose О;<br />

/\юбой класс, р<strong>е</strong>ализуюш,ий инт<strong>е</strong>рф<strong>е</strong>йс<br />

IDisposable, н<strong>е</strong>м<strong>е</strong>дл<strong>е</strong>нно освобожда<strong>е</strong>т любы<strong>е</strong><br />

зад<strong>е</strong>йствованны<strong>е</strong> р<strong>е</strong>сурсы посл<strong>е</strong> вызова <strong>е</strong>го м <strong>е</strong>­<br />

тода DisposeQ. Это посл<strong>е</strong>дн<strong>е</strong><strong>е</strong>, что д<strong>е</strong>ла<strong>е</strong>тся<br />

п<strong>е</strong>р<strong>е</strong>д зав<strong>е</strong>рил<strong>е</strong>ни<strong>е</strong>м работы с объ<strong>е</strong>ктом.<br />

рас-пр<strong>е</strong>-д<strong>е</strong>-лять, гл.<br />

раздавать р<strong>е</strong>сурсы или<br />

обязанности для опр<strong>е</strong>д<strong>е</strong>л<strong>е</strong>нных<br />

ц<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>джм<strong>е</strong>нту.<br />

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

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

Saved successfully!

Ooh no, something went wrong!