IDisposable
的实现是否应该使Dispose()
方法可以多次调用?还是相反?大多数.NET Framework类采取哪种方法?
具体来说,System.Data.Linq.DataContext.Dispose()
方法是否可以安全地多次调用?
我提出这个问题的原因是想知道是否需要进行额外的保护:
public override void Dispose(bool disposing)
{
// Extra protection...
if (this.obj != null)
{
this.obj.Dispose();
this.obj = null;
}
// Versus simply...
this.obj.Dispose();
base.Dispose(disposing);
}
在处理一个类的IDisposable
成员时,我是否应该检查其之前是否已被调用过,或者只需调用this.obj.Dispose()
而不必关心它之前是否已经被调用。