当我忘记处理实现IDisposable的对象时,是否可以将Visual Studio 2008配置为发出警告?
答案 0 :(得分:6)
Visual Studio本身没有此功能,但使用CodeRush,您可以设置时间警告和重构,以便在需要时使用块进行插入。
答案 1 :(得分:2)
如果您打开FxCop设计规则,它将告诉您何时不实施IDisposable并且您有成员实现IDisposable,如下所示:
class Program
{
private DataTable NotDisposed;
public Program()
{
NotDisposed = new DataTable();
}
static void Main()
{
}
}
答案 2 :(得分:1)
我不认为它可以在编译时完成。
然而,它可以在运行时完成 我创建了一个抽象类'Disposable'(它实现了IDisposable,并实现了Disposable模式)。 在终结器中,我在调用终结器时发出Assert,并且该对象尚未处理。
我的基础是Ian Griffiths的一篇文章:
http://www.interact-sw.co.uk/iangblog/2004/04/26/yetmoretimedlocking
答案 3 :(得分:0)
我不确定您是使用C#还是VB,但在C#中,处理IDisposable类型对象的“最佳实践”方法是将代码放在使用块中。
“using语句允许程序员指定何时使用资源的对象应该释放它们。提供给using语句的对象必须实现IDisposable接口。该接口提供Dispose方法,该方法应该释放对象的资源。” - MSDN Link
HTH,
-Dan