Programarea în C #

Programare Curs C # Ghid Rapid # 0153;
Partea 5.

5.6. Lucrul cu resurse necesită o eliberare explicită

În partea finală a secțiunii despre interfețele am menționat cu ajutorul operatorului. care vă permite să înlocuiască structura voluminoase try-catch-în cele din urmă atunci când se lucrează cu resurse care necesită eliberarea lor de îndată ce ați terminat utilizarea lor. folosind un design asigură că resursa va fi lansat, chiar dacă în procesul de manipulare excepție au avut loc. Codul de mai jos demonstrează utilizarea ambelor modele. Să presupunem că aveți un fișier text care este stocat într-un anumit format, secvența de puncte (X, Y), separate prin „|“.

Punctul de această ilustrație - arată că resurse precum fișierul pe care trebuie să funcționeze corect. Pentru a citi fișierul, utilizați clasa StreamReader. care permite lucrul cu date de fișier ca un flux de caractere. După citirea datelor din dosar pentru a avea acces este necesar pentru a reveni sistemul de operare, și este, din acest motiv că lucrul cu această clasă se execută în contextul folosind declarația. Fișier asociat cu instanța de clasă StreamReader este închisă în mod corespunzător, chiar dacă în cursul lecturii orice erori sau evenimente neașteptate.

În cazul în care compilatorul știe ce este înaintea lor o clasă care încapsulează o resursă partajată, și cum să creeze în mod independent, o astfel de clasă? Pentru a înțelege ce compilator de a face cu obiectul indicat în antetul folosind structura după finalizarea unității principale, clasa corespunzătoare trebuie să pună în aplicare interfață IDisposable. Această interfață definește o singură metodă se elimina (). în punerea în aplicare a, care trebuie să fie plasat codul pentru eliberarea de distribuție a programelor implicate de resurse. Exemple de definire a acestor clase, puteți găsi cu ușurință în MSDN.