Sobes.tech
Junior — Middle

Ποιος είναι ο σκοπός της διεπαφής IDisposable στο .NET και πώς χρησιμοποιείται;

sobes.tech AI

Απάντηση από AI

Η διεπαφή IDisposable στο .NET προορίζεται για την χειροκίνητη απελευθέρωση μη διαχειριζόμενων πόρων (π.χ. περιγραφείς αρχείων, συνδέσεις βάσεων δεδομένων) όταν ένα αντικείμενο δεν είναι πλέον απαραίτητο.

Χρήση:

  • Η κλάση υλοποιεί το 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()