2010-03-08 15 views
9

Rozumiem koncepcję i powody używania instrukcji using i używam jej z takimi zasobami jak zasoby plików i zdalne połączenia, zastanawiałem się, czy dobrą praktyką jest użycie instrukcji using z formularzami i oknami WinForm?Używanie wyrażenia using z WinForms ... Dobra praktyka?

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

Dzięki!

+0

Dobra uwaga. Co słychać w opakowaniu wszystkiego w blokach try/catch/finally? –

Odpowiedz

7

Tylko z dialogami. Ale to jest bardzo dobra praktyka.

Przekonasz się, że to nie działa dookoła Show(), ponieważ using(){} może być użyty tylko wewnątrz 1 metody i nigdy nie będziesz chciał zamknąć ponownie zaraz po Show().

+0

Oczywiście ma to sens w odniesieniu do używania tylko z oknami dialogowymi. :) –

+0

Nie rozumiem, dlaczego potrzebujesz Dispose with ShowDialog, gdy z Show you dont .. tworzy niespójności w moim kodzie za każdym razem. Zwykle dodaję też użycie wokół ShowDialog, ale tylko po to, aby mój profiler nie wymieniał go jako jednorazowej instancji, która nie została usunięta. czy istnieje prawdziwy powód, dla którego powinien zostać usunięty? – stmax

+2

@stmax zależy od zakresu wyświetlanego formularza. ShowDialog "zablokuje", dopóki formularz nie zostanie zamknięty, więc blokowanie nie zakończy się, dopóki formularz nie zostanie zamknięty. Pokaż z drugiej strony zwraca "natychmiast", abyś ostatecznie wyrzucił obiekt, który jest nadal w użyciu. –

Powiązane problemy