Sobes.tech
Middle

Na čo je v C# potrebné rozhranie IDisposable?

sobes.tech AI

Odpoveď od AI

Rozhranie IDisposable sa používa na implementáciu vzoru uvoľnenia zdrojov, ktoré sú spravované mimo prostredia CLR (napríklad súborové deskriptory, sieťové spojenia, handle WinAPI).

Hlavné ciele:

  • Deterministické uvoľnenie zdrojov: Umožňuje explicitne uvoľniť neovládané zdroje okamžite, namiesto čakania na volanie finalizátora (ak existuje) garbage collectora.
  • Prevencia únikov zdrojov: Zabezpečuje, že kritické zdroje budú uvoľnené po použití, aj pri výnimkách.
  • Použitie s kľúčovým slovom using: Konštrukcia using automaticky volá metódu Dispose() objektu, ktorý implementuje IDisposable, na konci bloku kódu, čím zabezpečuje spoľahlivé uvoľnenie.

Implementácia zahŕňa metódu Dispose() bez parametrov, ktorá vykonáva uvoľnenie zdrojov. Často pattern zahŕňa finalizátor (destruktor) na uvoľnenie zdrojov, ak Dispose() nebol explicitne volaný, ale odporúča sa vyhýbať sa finalizátorom a spoliehať sa na using.

public interface IDisposable
{
    void Dispose();
}