...如果我在局部变量中使用IDisposable,但不要调用Dispose()或使用using()模式。
public void BadMethod()
{
var fs = new FileStream("file.txt", FileMode.Create);
fs.WriteByte(0x55);
// no dispose, no using()
}
就像字段的"Types that own disposable fields should be disposable"规则一样。
编辑:由FileStream替换MemoryStream,因为MemoryStream只是分配内存而不使用(非托管)资源,所以某人可以讨论强制Dispose()调用。
答案 0 :(得分:15)
这是否有FxCop规则?是的,没有。
在FxCop 1.35中,这是Visual Studio 2005 Code Analysis所基于的,有一个规则DisposeObjectsBeforeLosingScope就是这样做的。
在FxCop 1.36(Visual Studio 2008代码分析)中,他们删除了他们的数据流分析引擎,这意味着还必须删除此规则。
但是,在下一个FxCop( Visual Studio 2010 代码分析)中,DisposeObjectsBeforeLosingScope似乎已经返回了!