Sobes.tech
Middle

За шта је интерфејс IDisposable у C#?

sobes.tech АИ

Одговор од АИ

Interfejs IDisposable se koristi za implementaciju obrasca oslobađanja resursa koji se upravljaju van CLR okruženja (na primer, deskriptori fajlova, mrežne veze, handle-ovi WinAPI-ja).

Glavni ciljevi:

  • Deterministično oslobađanje resursa: Omogućava eksplicitno oslobađanje neuređenih resursa odmah, umesto da se čeka da ih pozove finalizator (ako postoji) sakupljača smeća.
  • Prevencija curenja resursa: Osigurava da kritični resursi budu oslobođeni nakon upotrebe, čak i u slučaju izuzetaka.
  • Korišćenje sa ključnom reči using: Konstrukcija using automatski poziva metodu Dispose() objekta koji implementira IDisposable na kraju bloka koda, obezbeđujući pouzdano oslobađanje.

Implementacija uključuje metodu Dispose() bez parametara, koja vrši oslobađanje resursa. Često, obrazac uključuje finalizator (destruktor) za oslobađanje resursa u slučaju da Dispose() nije eksplicitno pozvan, ali se preporučuje izbegavanje finalizatora i oslanjanje na using.

public interface IDisposable
{
    void Dispose();
}