ulr*_*chb 6 .net c# fxcop idisposable
...如果我在局部变量中使用IDisposable,但不调用Dispose()或使用using()模式.
public void BadMethod()
{
var fs = new FileStream("file.txt", FileMode.Create);
fs.WriteByte(0x55);
// no dispose, no using()
}
Run Code Online (Sandbox Code Playgroud)
就像"拥有一次性领域的类型应该是一次性的"规则的领域.
编辑:由FileStream替换MemoryStream,因为MemoryStream只是分配内存而不使用(非托管)资源,所以有人可以讨论强制Dispose()调用.
bob*_*mcr 15
这有一个FxCop规则吗?是的,不是.
在FxCop 1.35中,这是Visual Studio 2005 Code Analysis所基于的,有一个规则DisposeObjectsBeforeLosingScope就是这样做的.
在FxCop 1.36(Visual Studio 2008代码分析)中,他们删除了他们的数据流分析引擎,这意味着还必须删除此规则.
但是,在下一个FxCop(Visual Studio 2010代码分析)中,似乎DisposeObjectsBeforeLosingScope已经返回!