在我们的项目中,我注意到很多地方我们忘记关闭某些连接。现在的问题是,如果我们不关闭/处置它,是否可以使Visual Studio显示警告?
一个正确的例子是:
var app = new Application();
try {
//Some code
} finally {
app.Dispose();
}
所以我的想法是,是否有可能发出警告,如果创建了应用程序/连接并且缺少处置,则会触发该警告。
答案 0 :(得分:0)
有一个内置的静态分析工具,简称为“代码分析”,可以完全满足您的要求。您可以在要应用此行为的每个项目上启用它。启用后,只要资源处理不当,您都会收到编译警告或错误(可配置)。
请参阅以下内容:
How to enable automatic code analysis
CA2000: Dispose objects before losing scope
启用CA2000并将其设置为“错误”的屏幕截图:
编辑: 实际上,有两种不同类型的静态代码分析可用。我上面提到的是较旧的版本,有时也称为“ FxCop”
较新的代码分析类型称为Roslyn Analyzers。在此处查看信息:https://docs.microsoft.com/en-us/visualstudio/code-quality/roslyn-analyzers-overview
答案 1 :(得分:-1)
我建议使用using语句完全规避该问题:
using(var app = new Application)
{
some code...
}
using语句在执行后将自动处理您的对象(或连接),从而避免了忘记关闭连接的问题。那可能使您的问题有所回避,但是从它的措辞来看,这似乎是潜在的问题。