1. Wprowadzenie do C#
  2. Szybki start
  3. Pierwszy program
  4. Komentarze
  5. Typy danych
  6. Zmienne
  7. Pola
  8. Właściwości
  9. Stałe
  10. Metody
  11. Instrukcje warunkowe
  12. Pętle
  13. Tablice
  14. Kolekcje
  15. Klasy
  16. Dziedziczenie
  17. Polimorfizm
  18. Konwersja typów
  19. Właściwości klasy String
  20. Typy wyliczeniowe
  21. Interfejsy
  22. Klasy statyczne
  23. Klasy Abstrakcyjne
  24. Przestrzenie nazw
  25. Wyjątki
  26. Typy generyczne
  27. JSON
  28. XML
  29. Podsumowanie

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
    }
}
								
						
Notatka

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.