Sobes.tech
Junior — Middle

Mi a célja az IDisposable interfésznek a .NET-ben, és hogyan kell használni?

sobes.tech MI

Válasz az MI-től

A .NET-ben az IDisposable interfész arra szolgál, hogy kézzel felszabadítsuk a nem kezelt erőforrásokat (például fájldeskriptorokat, adatbázis-kapcsolatokat), amikor az objektum már nem szükséges.

Használat:

  • A osztály implementálja az IDisposable-t és felülírja a Dispose() metódust, amelyben felszabadítja az erőforrásokat.
  • A kódban, ahol az objektumot használják, explicit módon meghívják a Dispose() metódust vagy a using szerkezetet alkalmazzák, amely garantálja a Dispose() hívását még kivétel esetén is.

Példa:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Erőforrások felszabadítása
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Használat
using (var resource = new ResourceHolder())
{
    // erőforrással való munka
}
// Itt automatikusan meghívódik a Dispose()