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
usingquruluş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