gpt4 book ai didi

c# - CA2000:对象未沿所有异常路径处置

转载 作者:太空狗 更新时间:2023-10-29 20:28:45 25 4
gpt4 key购买 nike

虽然之前在这里讨论过这个话题,但是提出的解决方案似乎并不奏效..

我的表单应用程序中有一个按钮单击回调方法,它显示了一个文件夹选择器对话框:

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 : In method 'MainWindow.ButtonSelectReporterFolderClick(object, EventArgs)', object '<>g__initLocal' is not disposed along all exception paths. Call System.IDisposable.Dispose on object '<>g__initLocal' before all references to it are out of scope.

我还尝试使用 try - finally block 甚至调用 dialog.Dispose 没有任何 block ,都无济于事 - 警告仍然存在,始终在初始化行。

最佳答案

警告不是因为 FolderBrowserDialog 没有被处置,而是因为它有一些实现 IDisposable 接口(interface)的公共(public)成员,而您没有单独处置它们。当然,FolderBrowserDialog 对象知道如何处理它的依赖项,但 FxCop 无法知道,因此它会发出警告。只需忽略您案例中的警告即可。

关于c# - CA2000:对象未沿所有异常路径处置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6789125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com