Bonjour,
Je suis toujours un peu dubitatif au sujet de la libération des ressources. En fait, je ne vois pas bien de façon intuitive quand je dois ou non m'occuper explicitement de libérer les ressources utilisées, et sur le net je trouve des exemples qui me semblent contradictoires.
Par exemple, si je dérive un RichTextBox, et que dans ce contrôle dérivé j'ai créé un menu interne.
Dois-je ajouter ceci à mon contrôle pour libérer le dit menu?
Est-ce utile? Nuisible? Indifférent?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 protected override void Dispose(bool disposing) { if (!disposed) { if (disposing) // pour les objets disposables { if (menuInterne != null) // libérer le menu menuInterne.Dispose(); } disposed = true; //un seul passage base.Dispose(disposing); // appel du dispose de base } }
Comment savoir ce que je dois libérer explicitement ou non?
Question subsidiaire
Si je crée une librairie de contrôle, et que je remplace la dérivation pour utiliser un contrôle existant (ex:TextBox) au lieu de UserControl, quel constructeur est le plus approprié,
Celui-ci :
ou celui-là ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public MonControle() { InitializeComponent(); }
Et pourquoi?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 public MonControle() : base() { }
Merci d'avance
Claude
Partager