В чем разница, если она есть, между деструктором и методом 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 с теми же типами параметров.