Sobes.tech
Junior — Middle

Wyjaśnij cel i użycie interfejsu IDisposable w .NET

sobes.tech AI

Odpowiedź od AI

Interfejs IDisposable w .NET jest przeznaczony do zwalniania niezarządzanych zasobów, takich jak pliki, połączenia sieciowe, deskryptory itp. Zawiera jedną metodę — Dispose(), która jest wywoływana w celu jawnego zwolnienia zasobów.

Użycie IDisposable pozwala kontrolować czas zwalniania zasobów, co jest ważne dla zapobiegania wyciekom pamięci i blokadom.

Przykład użycia:

class ResourceHolder : IDisposable
{
    private FileStream fileStream;

    public ResourceHolder(string filePath)
    {
        fileStream = new FileStream(filePath, FileMode.Open);
    }

    public void Dispose()
    {
        fileStream?.Dispose();
    }
}

// Użycie z instrukcją using
using (var resource = new ResourceHolder("file.txt"))
{
    // Praca z zasobem
}
// Po wyjściu z using, automatycznie wywoływane jest Dispose()

W ten sposób IDisposable pomaga zarządzać cyklem życia zasobów i zapewnia ich poprawne zwolnienie.