Sobes.tech
Middle

Mit jelent az IDisposable interfész C#-ban?

sobes.tech MI

Válasz az MI-től

Az IDisposable interfész a nem kezelő erőforrások felszabadításának mintáját valósítja meg, amelyek a CLR környezeten kívül vannak kezelve (például fájldeskriptorok, hálózati kapcsolatok, WinAPI handle-ek).

Fő célok:

  • Határozott erőforrásfelszabadítás: Lehetővé teszi a nem kezelt erőforrások azonnali felszabadítását, ahelyett, hogy várnánk, hogy a szemétgyűjtő meghívja a végzőt (ha van).
  • Erőforrás szivárgások megelőzése: Biztosítja, hogy a kritikus erőforrások a használat után felszabaduljanak, még kivétel esetén is.
  • Használat a using kulcsszóval: A using szerkezet automatikusan meghívja az IDisposable-t megvalósító objektum Dispose() metódusát a kódblokk végén, megbízható felszabadítást biztosítva.

A megvalósítás tartalmaz egy paraméter nélküli Dispose() metódust, amely az erőforrásokat felszabadítja. Gyakran a minta tartalmaz egy finalizálót (destruktort) az erőforrások felszabadítására, ha a Dispose() nem lett explicit meghívva, de ajánlott elkerülni a finalizálókat, és a using-re hagyatkozni.

public interface IDisposable
{
    void Dispose();
}