Typy generyczne w C#

Słownik kwalifikacji INF.04 - Projektowanie, programowanie i testowanie aplikacji

Typy generyczne pozwalają tworzyć klasy, metody i struktury działające na różnych typach danych, ale z zachowaniem kontroli typów już na etapie kompilacji.

W C# typ generyczny zapisuje się z użyciem nawiasów ostrych, np. List<T>, gdzie T oznacza parametr typu. Podczas tworzenia obiektu podaje się konkretny typ, np. int, string lub własną klasę.

Przykład

List<int> liczby = new List<int>();
liczby.Add(10);
liczby.Add(25);

W tym przykładzie List<int> oznacza listę przechowującą wyłącznie liczby całkowite typu int. Nie można dodać do niej tekstu:

liczby.Add("tekst"); // błąd kompilacji

Po co stosuje się typy generyczne?

Typy generyczne są używane, ponieważ:

  • zwiększają bezpieczeństwo typów,
  • ograniczają ryzyko błędów w czasie działania programu,
  • eliminują potrzebę częstego rzutowania,
  • pozwalają pisać bardziej uniwersalny kod.

Typowe przykłady generyków

W C# często spotyka się kolekcje generyczne:

List<string> imiona = new List<string>();
Dictionary<int, string> uczniowie = new Dictionary<int, string>();
Queue<double> wyniki = new Queue<double>();

W każdym przypadku typ podany w nawiasach ostrych określa, jakie dane mogą być przechowywane lub przetwarzane.

Wniosek egzaminacyjny

Jeżeli widzisz zapis:

List<int> wykaz = new List<int>();

to oznacza, że lista wykaz przechowuje elementy typu int, czyli liczby całkowite.