De ce avem nevoie de IDdisposable?
De ce avem nevoie de IDdisposable?

Video: De ce avem nevoie de IDdisposable?

Video: De ce avem nevoie de IDdisposable?
Video: IDisposable in C# | When & Where to use IDisposable | .NET Core 2024, Noiembrie
Anonim

ID de unică folosință nu va curăța nimic și nu va distruge obiecte. Un apel la Dispose() nu face nimic dacă acea funcție nu face nimic. Utilizarea ID de unică folosință este un model. Referințele gestionate la alte obiecte împiedică colectarea obiectelor de către colectorul de gunoi.

În mod similar, vă puteți întreba, de ce este utilizată interfața IDisposable?

ID de unică folosință este adesea folosit pentru a exploata instrucțiunea using și a profita de o modalitate ușoară de a face curățarea deterministă a obiectelor gestionate. Scopul modelului Dispose este de a oferi un mecanism de curățare atât a resurselor gestionate, cât și a celor negestionate, iar momentul în care se întâmplă asta depinde de modul în care este apelată metoda Dispose.

În plus, ce este IDdisposable? ID de unică folosință este o interfață care conține o singură metodă, Dispose(), pentru eliberarea de resurse negestionate, cum ar fi fișiere, fluxuri, conexiuni la baze de date și așa mai departe.

Având în vedere acest lucru, când ar trebui să folosesc IDisposable?

într-o clasă, tu ar trebui să implementeze IDisposable și suprascrieți metoda Dispose pentru a vă permite să controlați când memoria este eliberată. Dacă nu, această responsabilitate este lăsată în sarcina colectorului de gunoi pentru a elibera memoria atunci când obiectul care conține resursele neadministrate este finalizat.

De ce trebuie să dispunem în C#?

Întotdeauna se recomandă utilizarea Dispune metodă de curățare a resurselor negestionate. Dar resursele negestionate (de exemplu, obiectele create de Windows API, fișierul, obiectele de conexiune la baza de date, obiectele COM etc.) sunt în afara domeniului de aplicare al. Cadru net noi trebuie să ne curățăm în mod explicit resursele. Pentru aceste tipuri de obiecte,.

Recomandat: