Sobes.tech
Middle

Ποια είναι η χρήση της διεπαφής IDisposable στη C#;

sobes.tech AI

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

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

Κύριοι στόχοι:

  • Καθοριστική απελευθέρωση πόρων: Επιτρέπει την άμεση απελευθέρωση μη διαχειριζόμενων πόρων, αντί να περιμένει ο συλλέκτης απορριμμάτων να καλέσει τον τελειωτή (αν υπάρχει).
  • Πρόληψη διαρροών πόρων: Διασφαλίζει ότι κρίσιμοι πόροι απελευθερώνονται μετά τη χρήση, ακόμη και σε περίπτωση εξαιρέσεων.
  • Χρήση με τη λέξη-κλειδί using: Η κατασκευή using καλεί αυτόματα τη μέθοδο Dispose() του αντικειμένου που υλοποιεί το IDisposable στο τέλος του μπλοκ κώδικα, διασφαλίζοντας αξιόπιστη απελευθέρωση.

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

public interface IDisposable
{
    void Dispose();
}