c# – CA2000:未沿所有异常路径放置的对象
发布时间:2020-12-15 07:43:34 所属栏目:百科 来源:网络整理
导读:虽然之前已讨论过主题,但建议的解决方案似乎不起作用.. 我的表单应用程序中有一个按钮单击回调方法,它显示了一个文件夹选择器对话框: private void ButtonSelectReporterFolderClick(object sender,EventArgs e){ using (var dialog = new FolderBrowserDia
虽然之前已讨论过主题,但建议的解决方案似乎不起作用..
我的表单应用程序中有一个按钮单击回调方法,它显示了一个文件夹选择器对话框: private void ButtonSelectReporterFolderClick(object sender,EventArgs e) { using (var dialog = new FolderBrowserDialog()) // causes warning { if (dialog.ShowDialog() == DialogResult.OK) { this.boxReporterFolderPath.Text = dialog.SelectedPath; } } } 这会产生一个警告: CA2000:Microsoft.Reliability:在方法’MainWindow.ButtonSelectReporterFolderClick(object,EventArgs)’中,对象’<> g__initLocal’未沿所有异常路径放置.在对所有引用超出范围之前,调用System.IDisposable.Dispose对象’<> g__initLocal’. 我也试过使用try-finally块甚至调用dialog.Dispose没有任何块,一切都无济于事 – 警告仍然存在,总是在初始化的行. 解决方法
警告不是因为没有处理FolderBrowserDialog,而是因为它有一些实现IDisposable接口的公共成员而你没有单独处理它们.当然,FolderBrowserDialog对象知道如何处理它的依赖关系,但FxCop无法知道它,因此它会发出警告.只需忽略您案例中的警告即可.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |