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