Sobes.tech
Middle

À quoi sert l'interface IDisposable en C#?

sobes.tech IA

Réponse de l'IA

L'interface IDisposable est utilisée pour implémenter le modèle de libération des ressources gérées en dehors de l'environnement CLR (par exemple, descripteurs de fichiers, connexions réseau, handles WinAPI).

Objectifs principaux :

  • Libération déterministe des ressources : Permet de libérer explicitement les ressources non gérées immédiatement, plutôt que d'attendre que le ramasse-miettes invoque le finaliseur (le cas échéant).
  • Prévention des fuites de ressources : Garantit que les ressources critiques sont libérées après utilisation, même en cas d'exceptions.
  • Utilisation avec le mot-clé using : La construction using appelle automatiquement la méthode Dispose() de l'objet qui implémente IDisposable à la fin du bloc de code, assurant une libération fiable.

L'implémentation inclut la méthode Dispose() sans paramètres, qui effectue la libération des ressources. Souvent, le pattern inclut un finaliseur (destructeur) pour libérer les ressources si Dispose() n'a pas été appelé explicitement, mais il est recommandé d'éviter les finaliseurs en se fiant à using.

public interface IDisposable
{
    void Dispose();
}