Часть одноразового шаблона включает следующий способ.
protected virtual void Dispose(bool disposing)
{
if (!disposed)
{
if (disposing)
{
// TODO: dispose managed state (managed objects).
}
// TODO: free unmanaged resources (unmanaged objects) and override a finalizer below.
// TODO: set large fields to null.
disposed = true;
}
}
Этот метод имеет различную обработку для очистки управляемых и неуправляемых ресурсов. Но что, если я хочу очистить член класса, который реализует IDisposable
?
Обычно я не знаю, очищает ли этот элемент управляемые или неуправляемые ресурсы. Итак, если я хочу, чтобы мой метод Dispose
очищал член класса, реализующий IDisposable
, должен ли я вызывать Dispose()
для этого члена в управляемых или неуправляемых разделах кода выше?