Sobes.tech
Junior — Middle

Ի՞նչ է նշանակում IDisposable ինտերֆեյսը .NET-ում և ինչպես օգտագործել այն։

sobes.tech AI

Պատասխան AI-ից

.NET-ում IDisposable ինտերֆեյսը նախատեսված է ձեռքով ազատելու ոչ կառավարվող ռեսուրսները (օրինակ՝ ֆայլերի նկարագրիչներ, տվյալների բազայի կապեր), երբ օբյեկտը այլևս անհրաժեշտ չէ:

Օգտագործում:

  • Կլասը իրականացնում է IDisposable և վերագրում Dispose() մեթոդը, որը ազատում է ռեսուրսները:
  • Օգտագործման ժամանակ, օբյեկտի օգտագործման կոդում, կանչվում է բացահայտորեն Dispose() կամ կիրառվում է using կառուցվածքը, որը ապահովում է Dispose()-ի կանչը նույնիսկ արտակարգ իրավիճակներում:

Օրինակ:

class ResourceHolder : IDisposable
{
    private bool disposed = false;
    public void Dispose()
    {
        if (!disposed)
        {
            // ռեսուրսների ազատում
            disposed = true;
            GC.SuppressFinalize(this);
        }
    }

    ~ResourceHolder()
    {
        Dispose();
    }
}

// Օգտագործում
using (var resource = new ResourceHolder())
{
    // ռեսուրսի հետ աշխատանք
}
// Այստեղ ավտոմատ կերպով կանչվում է Dispose()