Junior — Middle
Proqramlaşdırmada Dispose nümunəsinin nə olduğunu izah edə bilərsinizmi?
sobes.tech Süni İntellekt
AI-dan cavab
Proqramlaşdırmada Dispose nümunəsi, xüsusən C#-da, idarə olunmayan resursların (məsələn, fayl deskriptorları, verilənlər bazası əlaqələri, soketlər) düzgün şəkildə azad olunması üçün istifadə olunur.
C#-da bunun üçün IDisposable interfeysi tətbiq edilir və içində Dispose() metodu yerləşir. Bu metod çağırıldıqda, obyekt artıq lazım olmadıqda resursları açıq şəkildə azad edir.
İstifadə nümunəsi:
class ResourceHolder : IDisposable
{
private bool disposed = false;
private IntPtr unmanagedResource; // idarə olunmayan resurs nümunəsi
public void Dispose()
{
Dispose(true);
GC.SuppressFinalize(this); // finalizer çağırışını qarşısını alır
}
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// İdarə olunan resursları azad et
}
// İdarə olunmayan resursları azad et
CloseHandle(unmanagedResource);
unmanagedResource = IntPtr.Zero;
disposed = true;
}
}
~ResourceHolder()
{
Dispose(false);
}
}
Bu nümunə, resursların azad olunma vaxtını idarə etməyə və yaddaş sızıntılarını və ya kilidlənmələri qarşısını almağa kömək edir.