Sobes.tech
Junior — Middle

Mis on IDisposable liidese eesmärk .NET-is ja kuidas seda kasutada?

sobes.tech AI

Vastus AI-lt

.NET-i IDisposable liides on mõeldud mittehallatud ressursside (näiteks failide kirjeldajate, andmebaasi ühenduste) käsitsi vabastamiseks, kui objekt ei ole enam vajalik.

Kasutamine:

  • Klass rakendab IDisposable ja ülekirjutab meetodi Dispose(), milles vabastatakse ressursid.
  • Koodis, kus objekt kasutatakse, kutsutakse Dispose() otse või kasutatakse konstruktsiooni using, mis tagab Dispose() kutsumise isegi erandite korral.

Näide:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // Ressursside vabastamine
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Kasutamine
using (var resource = new ResourceHolder())
{
    // Ressursiga töötamine
}
// Siin kutsutakse automaatselt Dispose()