当派生类重写 Dispose 时,是否应该在派生类释放任何本地资源之前先调用基类 Dipose?
我问的原因是因为我们团队中的某个人对每种情况都说“是”,我正在尝试确定这是一个好主意还是只是“货物崇拜”编程,无论哪种方式我都没有强烈的看法。
前:
public override void Dispose()
{
base.Dispose();
if (!_isDisposed)
{
_isDisposed = true;
if (_foo != null)
{
_foo.Dispose();
}
}
}
后:
public override void Dispose()
{
if (!_isDisposed)
{
_isDisposed = true;
if (_foo != null)
{
_foo.Dispose();
}
}
base.Dispose();
}
注意:我不是在寻找如何实现基本的处置模式,而是从人们的经验中得到更多的澄清。