Sobes.tech
Junior

Čo sú generické typy v C#?

sobes.tech AI

Odpoveď od AI

Všeobecné typy (Generic) v C# umožňujú definovať triedy, štruktúry, rozhrania, delegáty a metódy s parametrami typu. To poskytuje možnosť opakovaneho použitia kódu a zvýšenia typovej bezpečnosti.

Hlavné výhody:

  • Opakovanie kódu: Jedna trieda alebo metóda môže pracovať s rôznymi dátovými typmi bez duplikácie logiky.
  • Typová bezpečnosť: Kompilátor kontroluje typy počas kompilácie, čím zabraňuje chybám za behu spojeným s nezhodou typov.
  • Výkon: Pre hodnotové typy (struct) nedochádza k boxing, čo zlepšuje výkon v porovnaní s použitím object.

Princípy fungovania:

  • Parametre typu: Definujú sa pomocou uhorských zátvoriek <T>, kde T je názov parametra typu. Môže sa použiť akékoľvek meno, ale T je bežné.
  • Vytváranie inštancií: Pri vytváraní inštancie generického typu je potrebné špecifikovať konkrétny dátový typ pre každý parameter typu.
  • Obmedzenia (Constraints): Môžu sa ukladať obmedzenia na parametre typu, uvádzajúc, aké schopnosti musia typy podporovať (napríklad implementácia rozhrania, základná trieda, absencia konštruktora).

Príklad použitia generickej triedy List<T>:

// Vytvorenie zoznamu celých čísel
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);

// Vytvorenie zoznamu reťazcov
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");