Bakit kailangan natin ang IDisposable?
Bakit kailangan natin ang IDisposable?

Video: Bakit kailangan natin ang IDisposable?

Video: Bakit kailangan natin ang IDisposable?
Video: Blazor Tutorial C# - Part 9 - Blazor Timer & Blazor Dispose Timer | Blazor Timer not Stopping 2024, Mayo
Anonim

Idisposable hindi maglilinis ng anuman o maninira ng mga bagay. Ang isang tawag sa Dispose() ay walang ginagawa kung ang function na iyon ay walang ginagawa. Ang gamit ng Idisposable ay isang pattern. Ang mga pinamamahalaang sanggunian sa iba pang mga bagay ay pumipigil sa mga bagay na makolekta ng kolektor ng basura.

Katulad nito, maaari mong itanong, bakit ginagamit ang IDisposable interface?

Idisposable ay madalas ginamit upang samantalahin ang paggamit ng pahayag at samantalahin ang isang madaling paraan upang gawin ang deterministikong paglilinis ng mga pinamamahalaang bagay. Ang layunin ng pattern ng Dispose ay magbigay ng mekanismo upang linisin ang parehong pinamamahalaan at hindi pinamamahalaang mga mapagkukunan at kapag nangyari iyon ay depende sa kung paano tinatawag ang Dispose method.

Higit pa rito, ano ang IDisposable? Idisposable ay isang interface na naglalaman ng isang paraan, Dispose(), para sa pagpapalabas ng mga hindi pinamamahalaang mapagkukunan, tulad ng mga file, stream, koneksyon sa database at iba pa.

Isinasaalang-alang ito, kailan ko dapat gamitin ang IDisposable?

sa isang klase, ikaw dapat ipatupad ang IDisposable at i-overwrite ang Dispose method para bigyang-daan kang makontrol kapag ang memorya ay nalaya. Kung hindi, ang responsibilidad na ito ay ipinaubaya sa kolektor ng basura upang palayain ang memorya kapag ang bagay na naglalaman ng hindi pinamamahalaang mga mapagkukunan ay natapos na.

Bakit kailangan nating itapon sa C#?

Ito ay palaging inirerekomenda na gamitin Itapon paraan upang linisin ang hindi pinamamahalaang mga mapagkukunan. Ngunit ang hindi pinamamahalaang mga mapagkukunan (Halimbawa, ang Windows API ay gumawa ng mga bagay, File, Database connection object, COM object, atbp) ay nasa labas ng saklaw ng. NET framework tayo kailangang tahasang linisin ang ating mga mapagkukunan. Para sa mga ganitong uri ng bagay,.

Inirerekumendang: