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()