Sobes.tech
Middle

C# tilida IDisposable interfeysi nima uchun kerak?

sobes.tech AI

AIdan javob

IDisposable interfeysi, CLR muhitidan tashqarida boshqariladigan resurslarni bo'shatish uchun ishlatiladi (masalan, fayl deskriptorlari, tarmoq ulanishlari, WinAPI handle'lari).

Asosiy maqsadlar:

  • Aniq resurslarni bo'shatish: Boshqarilmaydigan resurslarni darhol bo'shatishga imkon beradi, garbage collector finalizatorni chaqirmasdan (agar mavjud bo'lsa).
  • Resurslar oqishini oldini olish: Muhim resurslar foydalanilgandan so'ng bo'shatilishini ta'minlaydi, hatto istisnolar bo'lsa ham.
  • using kalit so'zi bilan birga foydalanish: using konstruktsiyasi IDisposable ni amalga oshirgan ob'ektning Dispose() metodini kod blokining oxirida avtomatik chaqiradi, ishonchli bo'shatishni ta'minlaydi.

Ushbu implementatsiya resurslarni bo'shatadigan parametrsiz Dispose() metodini o'z ichiga oladi. Ko'pincha, Dispose() chaqirilmagan hollarda resurslarni bo'shatish uchun finalizator (destruktor) qo'shiladi, lekin finalizatorlardan voz kechish va using ga ishonish tavsiya etiladi.

public interface IDisposable
{
    void Dispose();
}