Dotlab – Development and other evil things


Destruktoren in C#

Veröffentlicht in .net Stuff von dotlab am Mai 20, 2009
Tags: , ,

Beim Umschreiben einer DataAccessHelper Klasse von VB nach C# bin ich auf das folgende Problem gestossen: in VB ist es ohne weiteres möglich, die Finalize() Methode zu überschreiben, wie in folgendem Beispiel:

' Destructor
    Protected Overrides Sub Finalize()
        Dispose()
    End Sub

In C# ist dies so nicht möglich, aber es gibt eine andere elegante Methode, einen eigenen Destruktor zu erstellen:

class TestClass
{
// Dispose Method
void Dispose()
{
  //Dispose Statements
}

// Destructor
~TestClass
{
  Dispose();
}
}

Zu beachten gilt es, dass eine Klasse nur einen Destruktor besitzen darf und dieser nicht vererbt oder überladen werden kann. Ein direkter Aufruf eines Destruktors ist nicht geplant, für das gibt’s den GC (Garbage Collector).

Eine Antwort schreiben