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