Destruktor klasy
Destruktor jest to specjalna metoda, która jest wywoływana automatycznie przez system, gdy obiekt jest usuwany z pamięci. Destruktory służą do zwalniania zasobów po obiekcie, takich jak połączenia z bazami danych, pliki, uchwyty i tym podobne.

W języku C# destruktory zdefiniowane są za pomocą słowa kluczowego ~
przed nazwą klasy, a nie jak konstruktor z new
.
using System;
class Program
{
static void Main(string[] args)
{
FabrykaZabawek SweetToys = new FabrykaZabawek(); // Tworzy instancję klasy FabrykaZabawek
SweetToys.StworzZabawke(); // Tworzy zabawkę
SweetToys.PokazZabawke(); // Wyświetla informacje o zabawce
// Destruktor zostanie wywołany automatycznie przy zakończeniu programu
}
}
class FabrykaZabawek
{
private string zabawka; // Pole przechowujące nazwę zabawki
// Konstruktor
public FabrykaZabawek()
{
Console.WriteLine("Zabawka jest tworzona");
}
// Destruktor
~FabrykaZabawek()
{
Console.WriteLine("Zabawka jest sprzedana");
}
public void StworzZabawke()
{
zabawka = "samochodzik"; // Tworzy zabawkę samochodzik
}
public void PokazZabawke()
{
Console.WriteLine("Zabawka: {0}", zabawka); // Wyświetla nazwę zabawki
}
}
Zabawka jest tworzona
Zabawka: samochodzik
Zabawka jest sprzedana

Jak widzisz, destruktory służą do zwalniania zasobów po obiekcie, które mogą być trudne do zarządzania w inny sposób. Zalecane jest, aby nie używać destruktorów zbyt często, ponieważ mogą one powodować trudności w debugowaniu i testowaniu oraz mogą mieć negatywny wpływ na wydajność aplikacji.