Когда производный класс переопределяет 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();
}
Примечание: Я не ищу, как реализовать базовый шаблон Dispose, но больше разъяснений от опыта народов.
Это было мое мнение было хорошо ... – AwkwardCoder
«Одна из причин склониться к его вызову в первую очередь заключается в том, что тогда производный класс имеет возможность делать специальные вещи после этого, если это необходимо »- правда, но тем не менее одной из причин назвать это последним является то, что тогда производный класс имеет шанс сделать специальный материал заранее :) – Joe