Част от шаблона за еднократна употреба включва следния метод.
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()
на този член в управляваните или неуправляваните секции в кода по-горе?