2010-03-08 10 views
9

Ich verstehe das Konzept und die Gründe für die Verwendung der using-Anweisung, und ich verwende es mit Dingen wie Dateiressourcen und Remote-Verbindungen, ich frage mich, ob es die Using-Anweisung mit WinForm-Formulare und Dialoge ist?Using-Anweisung mit WinForms verwenden ... Good Practice?

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

Vielen Dank!

+0

Guter Punkt. Was ist zu hören, wenn man alles in try/catch/finally blocks einpackt? –

Antwort

7

Nur mit Dialogen. Aber dann ist es eine sehr gute Übung.

Sie werden feststellen, dass es um Show() nicht funktioniert, weil using(){} nur innerhalb von 1 Methode verwendet werden kann und Sie nie wieder direkt nach einer Show() schließen möchten.

+0

Das macht natürlich Sinn, nur mit Dialogen zu arbeiten. :) –

+0

Ich verstehe nicht, warum Sie ein Dispose mit ShowDialog während mit Show Sie nicht brauchen würde .. erstellt einige Inkonsistenz in meinem Code jedes Mal. Normalerweise füge ich auch eine Verwendung um ShowDialog hinzu, aber nur, damit mein Profiler sie nicht als wegwerfbare Instanz auflistet, die nicht entsorgt wurde. Gibt es einen wirklichen Grund, warum es entsorgt werden sollte? – stmax

+2

@stmax hängt vom Umfang des angezeigten Formulars ab. ShowDialog wird "blockieren", bis das Formular geschlossen ist, so dass der Verwendungsblock erst nach dem Schließen des Formulars beendet wird. Auf der anderen Seite gibt Show "sofort" zurück, so dass Sie ein Objekt, das immer noch verwendet wird, entsorgen würden. –

Verwandte Themen