Sobes.tech
Junior — Middle

.NET'da IDisposable interfeysining maqsadi nima va uni qanday ishlatish mumkin?

sobes.tech AI

AIdan javob

.NET'da IDisposable interfeysi, obyekt artıq lazım olmadığında idarə olunmayan resursları (məsələn, fayl deskriptorları, verilənlər bazası əlaqələri) əl ilə azad etmək üçün nəzərdə tutulmuşdur.

İstifadə:

  • Sinif IDisposable-i həyata keçirir və Dispose() metodunu yenidən təyin edir, burada resurslar azad edilir.
  • Obiekt istifadə olunduğu kodda, Dispose() açıq şəkildə çağırılır və ya using quruluşu tətbiq olunur, bu da istisnalar zamanı belə Dispose() çağırılmasını təmin edir.

Misal:

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

    ~ResourceHolder()
    {
        Dispose();
    }
}

// İstifadə
using (var resource = new ResourceHolder())
{
    // resursla işləmə
}
// Burada avtomatik olaraq Dispose() çağırılır