60 votes

Comment ajouter la fonctionnalité Dispose à un UserControl C #?

J'ai une classe qui implémente UserControl. Dans .NET 2005, une méthode Dispose est automatiquement créée dans le fichier de classe partielle MyClass.Designer.cs qui se présente comme suit:

   protected override void Dispose(bool disposing)
  {
     if (disposing && (components != null))
     {
        components.Dispose();
     }
     base.Dispose(disposing);
  }
 

Si je veux ajouter ma propre fonctionnalité Dispose, où la placerais-je? Puisque ce fichier est généré, je ne veux pas ajouter de code ici et risquer de s’envoler.

55voto

Michael Damatov Points 5453

Dans un tel cas, je déplace la méthode Dispose générée vers le fichier principal et l’étend. Visual Studio respecte cela.

Une autre approche consisterait à utiliser une méthode partielle (C # 3.0).

8voto

Micah Points 28683

Je crois que dans ce cas, le générateur de code respecte votre code. Il devrait être prudent de le mettre dans le code ci-dessous.

6voto

akmad Points 7059

Dans VS 2005 (et 2008), vous pouvez mettre à jour la méthode Dispose . Elle ne sera pas supprimée lorsque vous modifierez le contrôle à partir du concepteur.

2voto

Mark Heath Points 22240

Vous pouvez le déplacer du fichier .designer.cs vers le fichier .cs principal si vous le souhaitez. Comme cela a déjà été dit, il ne sera pas écrasé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X