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>, kdeTje názov parametra typu. Môže sa použiť akékoľvek meno, aleTje 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");