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>, gdzieTto nazwa parametru typu. Można używać dowolnej nazwy, aleTjest 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");