Sobes.tech
Junior

Czym są typy generyczne w C#?

sobes.tech AI

Odpowiedź od AI

Typy generyczne w C# pozwalają na definiowanie klas, struktur, interfejsów, delegatów i metod z parametrami typu. Umożliwia to ponowne użycie kodu i zwiększenie bezpieczeństwa typów.

Główne zalety:

  • Ponowne użycie kodu: Pojedyncza klasa lub metoda może działać z różnymi typami danych bez duplikowania logiki.
  • Bezpieczeństwo typów: Kompilator sprawdza typy podczas kompilacji, zapobiegając błędom czasu wykonania związanym z niezgodnością typów.
  • Wydajność: Dla typów wartości (struct) nie dochodzi do boxing, co poprawia wydajność w porównaniu do użycia object.

Zasady działania:

  • Parametry typu: Definiuje się je za pomocą nawiasów ostrych <T>, gdzie T to nazwa parametru typu. Można używać dowolnej nazwy, ale T jest powszechne.
  • Tworzenie instancji: Przy tworzeniu instancji typu generycznego należy podać konkretny typ danych dla każdego parametru typu.
  • Ograniczenia (Constraints): Można nakładać ograniczenia na parametry typu, wskazując, jakie możliwości muszą obsługiwać typy (np. implementacja interfejsu, klasa bazowa, brak konstruktora).

Przykład użycia klasy generycznej List<T>:

// Tworzenie listy liczb całkowitych
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);

// Tworzenie listy łańcuchów
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");