Was ist in C # der Unterschied zwischen einem Destruktor und einer Finalize-Methode in einer Klasse?

Was ist der Unterschied zwischen einem Destruktor und einer Finalize-Methode in einer Klasse, wenn es einen gibt?

Ich habe kürzlich festgestellt, dass Visual Studio 2008 einen Destruktor als Synonym für eine Finalize-Methode betrachtet, was bedeutet, dass Sie in Visual Studio nicht beide Methoden gleichzeitig in einer Klasse definieren können.

Zum Beispiel das folgende Codefragment:

class TestFinalize
{
    ~TestFinalize()
    {
        Finalize();
    }

    public bool Finalize()
    {
        return true;
    }
}

Gibt den folgenden Fehler beim Aufruf von Finalize im Destruktor aus:

Der Aufruf ist zwischen den folgenden Methoden oder Eigenschaften nicht eindeutig: 'TestFinalize. ~ TestFinalize ()' und 'TestFinalize.Finalize ()'.

Und wenn der Aufruf von Finalize auskommentiert ist, wird der folgende Fehler ausgegeben:

Der Typ 'ManagementConcepts.Service.TestFinalize' definiert bereits ein Element namens 'Finalize' mit denselben Parametertypen

Antworten auf die Frage(3)

Ihre Antwort auf die Frage