2012-04-13 13 views
3

MDI Windowsフォームアプリケーションを開発中です。ブロックを使用して、モードレスフォームとモーダルフォームを通常閉じる。十分な?

ウェルカム(種類のホームページのような)ウィンドウから、ユーザーは特定のウィンドウを開いて、エンティティ、たとえば注文または顧客を追加または編集できます。これのそれぞれは、独自のモードレスウィンドウ(MDIChildとして)で開きます。 いくつかの状況で新しいレコードを追加することは、モーダルウィンドウで行われます。

私は、モードレスウィンドウでDispose()を明示的に実行していません。デバッグ中に検査ごとに、フォームの閉じるボタンをクリックすると、Designer.csファイルのDispose()メソッドが実行され、base.Disposingメソッドが呼び出されます。私はフォームが本当に閉じるボタンをクリックして処分されていることを理解するためにそれを取る。

ダイアログウィンドウでは、私は理解しているように、使用ブロック内でそれらを開きます。

私の全体的な理解とアプローチは正しいですか?

私はこれについてgoogleしました。さまざまなアプローチの非常に強力な支持者があるようだ、私は私のアプローチがOKであるかどうか少し分かりません。

あなたの説明をお寄せいただきありがとうございます。

ありがとうございます。

+0

これは問題ありません。変更する必要はありません。 –

答えて

0

あなたは変数を使用ブロックに持っていますか?あなたはかなり元気です。そのクラスに管理されていないリソースが含まれていない限りC#のダイアログとフォームは管理されていません。 C#のほとんどすべては管理されたメモリです。したがって、使用するだけで十分です。

次は実際には適用されませんので、あなたが使用して句を持っていますが、それは

は、「彼らはスコープの外に行くときの配置されていないIDisposablesていますか?」を知って良いことです いいえ.IDisposableオブジェクトがファイナライズ可能である場合、これは同じものではなく、ガベージコレクション時にファイナライズされます。 これは、間もなくまたはほとんどない可能性があります。詳細については、ここであなたを助けるべき議論の

たくさん

C# USING keyword - when and when not to use it?

私の現在の理解はありますが、ガベージコレクタまたはプログラムの閉鎖をアンマネージリソースを使用している場合を除き場合は、それの世話をすることメモリを再利用する必要があるか、またはプログラムが安定した状態で終了する必要があると判断します。

関連する問題