Ta Dispose
metoda jest wymagana do wykonania dowolnego czyszczenia, które będzie wymagane, zanim obiekt zostanie porzucony; jeśli czyszczenie nie jest wymagane, nie trzeba nic robić. Wymaganie od obiektu śledzenia tego, czy został usunięty, nawet jeśli Dispose
metoda w przeciwnym razie nic by nie zrobiła, wymagałoby od wielu IDisposable
obiektów dodania flagi z bardzo ograniczonymi korzyściami.
Pomocne mogłoby być IDisposable
uwzględnienie dwóch właściwości - jednej, która wskazywałaby, czy obiekt wymaga usunięcia , i jednej, która wskazywałaby, że przedmiot nie stał się bezużyteczny w wyniku usunięcia. W przypadku obiektów, w których usuwanie faktycznie coś robi, obie wartości będą początkowo prawdziwe, a później staną się fałszywe Dispose
. W przypadku obiektów, w których usuwanie nie wymaga żadnego czyszczenia, pierwsza metoda może zawsze zwracać fałsz, a druga zawsze prawda, bez konieczności przechowywania flagi w dowolnym miejscu. Nie wydaje mi się jednak, aby można je było teraz dodać do .NET.
bool IsDisposed { get; }
deklaracji w sprawieSystem.IDisposable
.