Dispose
Метод потрібно виконати всі , що очищення буде необхідно , перш ніж об'єкт припиняється; якщо не потрібно очищення, не потрібно нічого робити. Потреба в об’єкті, щоб відстежувати, чи був він утилізований, навіть коли Dispose
метод інакше нічого не робить, вимагатиме від багатьох IDisposable
об’єктів додавання прапора з дуже обмеженою перевагою.
Це могло б бути корисно, якби IDisposable
включало два властивості - одне, яке вказувало, чи потребує утилізація об’єкт , і одне, яке вказувало на те, що об’єкт не був зроблений марним при утилізації. Для об'єктів, де розпорядження насправді щось робить, спочатку обидва значення були б істинними, а після стали б хибними Dispose
. Для об'єктів, де утилізація не потребує очищення, перший метод завжди може повернути false, а другий завжди true, без необхідності зберігати прапор де-небудь. Однак я не думаю, що зараз їх можна додати до .NET.
bool IsDisposed { get; }
декларації про це немаєSystem.IDisposable
.