В чем разница, если таковая существует, между деструктором и методом 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' уже определяет член, называемый "Завершить" с теми же параметрами
