使用块包装对话框是多余的?

asm*_*smo 5 c# winforms

在下面的代码中,使用块是冗余还是必须完全释放资源?

using (var dialog = new AboutBox())
    dialog.ShowDialog();

using (var form = new OptionForm())
    form.Show();
Run Code Online (Sandbox Code Playgroud)

Jar*_*Par 6

第一个例子不是多余的.你应该IDisposable在你完成它的那一刻处理它,并且在模态形式的情况下,这完全实现了目标.

第二个例子虽然会导致错误.该Show方法立即返回,并继续显示表单.但是生成的using代码会立即生成Dispose并导致它消失.表格只应在完成展示后进行处理.

  • OP的次要添加:当使用ShowDialog时,它明确地不会自行处理; 当使用Show时,它明确地做(当关闭时) (2认同)