IDisposable, Finalizers i definicja niezarządzanego zasobu

Staram się upewnić, że moje zrozumienieIDisposable jest poprawne i jest jeszcze coś, czego wciąż nie jestem pewien.

IDisposable wydaje się służyć dwóm celom.

Aby zapewnić konwencję „wyłączania” zarządzanego obiektu na żądanie.Aby zapewnić konwencję wolnego „zasobów niezarządzanych” przechowywanych przez obiekt zarządzany.

Moje zamieszanie wynika z określenia, które scenariusze mają „niezarządzane zasoby” w grze.

Powiedz, że korzystasz z dostarczonego przez Microsoft oprogramowaniaIDisposable-implementing (managed) class (powiedzmy, baza danych lub związane z gniazdem).

Skąd wiesz, czy to wdrażaIDisposable za jedyne1 lub1 i 2 powyżej?Czy jesteś odpowiedzialny za upewnienie się, że niezarządzane zasoby, które mogą lub nie mogą być przechowywane wewnętrznie, zostaną zwolnione? Czy powinieneś dodać finalizator (czy byłby to właściwy mechanizm?) Do swojej własnej klasy, która wywołuje instancjęOfMsSuppliedClass.Dispose ()?

questionAnswers(8)

yourAnswerToTheQuestion