2010-03-08 4 views
9

Je comprends le concept et les raisons derrière l'utilisation de l'instruction using, et je l'utilise avec des choses comme les ressources de fichiers et les connexions distantes, je me demandais si c'est une bonne pratique pour utiliser l'instruction using avec WinForm forms and dialogs?Utilisation de l'instruction using avec WinForms ... Bonne pratique?

using (MyDialog dlg = new MyDialog()) 
{ 
    if (dlg.ShowDialog() == EDialogResult.OK) 
    { 
     // Do Something 
    } 
} 

Merci!

+0

Bon point. Qu'est-ce que l'on a entendu de tout emballer dans les blocs try/catch/finally? –

Répondre

7

Avec boîtes de dialogue uniquement. Mais alors c'est une très bonne pratique. Vous constaterez que cela ne fonctionne pas autour de Show(), car using(){} ne peut être utilisé qu'à l'intérieur d'une méthode et que vous ne voulez plus jamais fermer juste après un Show().

+0

Bien sûr, cela a du sens en ce qui concerne l'utilisation uniquement avec des boîtes de dialogue. :) –

+0

Je ne comprends pas pourquoi vous auriez besoin d'un Dispose avec ShowDialog tandis que avec Show you do .. crée une certaine incohérence dans mon code à chaque fois. En général, j'ajoute aussi une utilisation autour de ShowDialog, mais seulement pour que mon profileur ne l'affiche pas comme une instance jetable qui n'a pas été éliminée. Y a-t-il une vraie raison pour laquelle il devrait être éliminé? – stmax

+2

@stmax dépend de la portée de la forme affichée. ShowDialog 'bloquera' jusqu'à ce que le formulaire soit fermé, de sorte que le bloc using ne se terminera qu'après la fermeture du formulaire. Afficher d'un autre côté retourne "instantanément" pour que vous finissiez par disposer d'un objet qui est encore utilisé. –

Questions connexes