Middle
Ποια είναι η χρήση της διεπαφής IDisposable στη C#;
sobes.tech AI
Απάντηση από AI
Η διεπαφή IDisposable χρησιμοποιείται για την υλοποίηση του μοτίβου απελευθέρωσης πόρων που διαχειρίζονται εκτός του περιβάλλοντος CLR (π.χ., περιγραφείς αρχείων, συνδέσεις δικτύου, χειριστήρια WinAPI).
Κύριοι στόχοι:
- Καθοριστική απελευθέρωση πόρων: Επιτρέπει την άμεση απελευθέρωση μη διαχειριζόμενων πόρων, αντί να περιμένει ο συλλέκτης απορριμμάτων να καλέσει τον τελειωτή (αν υπάρχει).
- Πρόληψη διαρροών πόρων: Διασφαλίζει ότι κρίσιμοι πόροι απελευθερώνονται μετά τη χρήση, ακόμη και σε περίπτωση εξαιρέσεων.
- Χρήση με τη λέξη-κλειδί
using: Η κατασκευήusingκαλεί αυτόματα τη μέθοδοDispose()του αντικειμένου που υλοποιεί τοIDisposableστο τέλος του μπλοκ κώδικα, διασφαλίζοντας αξιόπιστη απελευθέρωση.
Η υλοποίηση περιλαμβάνει τη μέθοδο Dispose() χωρίς παραμέτρους, που πραγματοποιεί την απελευθέρωση πόρων. Συχνά, το μοτίβο περιλαμβάνει έναν τελειωτή (καταστροφέα) για την απελευθέρωση πόρων σε περίπτωση που το Dispose() δεν έχει κληθεί ρητά, αν και συνιστάται η αποφυγή τελειωτών και η εμπιστοσύνη στο using.
public interface IDisposable
{
void Dispose();
}