1. ホーム
  2. c#

[解決済み] C# Form.CloseとForm.Disposeの比較

2023-03-01 13:27:35

質問

私はC#の初心者で、以前の投稿を見ようとしましたが、良い答えが見つかりませんでした。

C#のWindowsフォームアプリケーションで、1つのフォームで Form.Close() を使うのが良いのか、それとも Form.Dispose() ?

MSDN は、Close が呼び出されると、オブジェクト内のすべてのリソースが閉じられ、フォームが破棄されると述べています。それにもかかわらず、私はCloseではなくDisposeに従ういくつかの例にオンラインで出会いました。

一方は他方より有利なのでしょうか。どのようなシナリオで、一方を他方よりも好むべきなのでしょうか。

どのように解決するのですか?

これは のフォーラムでは、MSDN で教えています。

Form.Close() は適切な Windows メッセージを送り、win32 ウィンドウをシャットダウンします。このプロセスの間、もし フォームが表示されていない場合、Dispose が呼び出されます。 が呼び出される。フォームを破棄することで フォームを廃棄することで、フォームが保持している非管理下のリソースを を解放します。

もしあなたが form1.Show() または Application.Run(new Form1()) である場合、Dispose が呼び出されます。 Close() が呼ばれたときに呼び出されます。

しかし、もしあなたが form1.ShowDialog() でフォームをモーダルに表示すると、フォーム は破棄されません。 を呼び出す必要があります。 form1.Dispose() を自分で呼び出す必要があります。 I このときばかりは フォームの廃棄について心配する必要があるのは を破棄することを心配しなければならないのは、このときだけだと思います。