Яка різниця, якщо існує один, між деструктором та методом Finalize у класі?
Нещодавно я виявив, що Visual Studio 2008 вважає деструктор синонімом методу Finalize, тобто Visual Studio не дозволяє одночасно визначати обидва методи в класі.
Наприклад, наступний фрагмент коду:
class TestFinalize
{
~TestFinalize()
{
Finalize();
}
public bool Finalize()
{
return true;
}
}
Показує таку помилку під час виклику Finalize у деструкторі:
Виклик неоднозначний між такими методами або властивостями: 'TestFinalize. ~ TestFinalize ()' та 'TestFinalize.Finalize ()'
І якщо виклик Finalize буде прокоментовано, він видає таку помилку:
Тип 'ManagementConcepts.Service.TestFinalize' вже визначає учасника з назвою 'Finalize' з тими самими типами параметрів