在下面的代码中,使用块是冗余还是必须完全释放资源?
using (var dialog = new AboutBox())
dialog.ShowDialog();
using (var form = new OptionForm())
form.Show();
Run Code Online (Sandbox Code Playgroud)
第一个例子不是多余的.你应该IDisposable在你完成它的那一刻处理它,并且在模态形式的情况下,这完全实现了目标.
第二个例子虽然会导致错误.该Show方法立即返回,并继续显示表单.但是生成的using代码会立即生成Dispose并导致它消失.表格只应在完成展示后进行处理.