Junior
Kas yra bendrieji tipai (Generic) C#?
sobes.tech AI
Atsakymas iš AI
Bendri tipai (Generic) C# leidžia apibrėžti klases, struktūras, sąsajas, delegatus ir metodus su tipų parametrais. Tai suteikia galimybę pakartotinai naudoti kodą ir padidinti tipų saugumą.
Pagrindiniai privalumai:
- Kodo pakartotinis naudojimas: Viena klasė ar metodas gali dirbti su skirtingais duomenų tipais be logikos dubliavimo.
- Tipų saugumas: Kompiliatorius tikrina tipus kompiliacijos metu, užkertant kelią vykdymo metu pasitaikančioms klaidoms, susijusioms su netinkamu tipu.
- Našumas: Vertės tipų (struct) atveju boxing nevyksta, tai pagerina našumą lyginant su
objectnaudojimu.
Veikimo principai:
- Tipų parametrai: Apibrėžiami naudojant kampinius skliaustus
<T>, kurTyra parametro pavadinimas. Galima naudoti bet kokį pavadinimą, betTyra įprasta. - Egzempliorių kūrimas: Kuriant bendro tipo egzempliorių, būtina nurodyti konkretų duomenų tipą kiekvienam tipų parametrui.
- Apribojimai (Constraints): Gali būti taikomi apribojimai tipų parametrams, nurodant, kokias galimybes turi palaikyti tipai (pvz., įgyvendinti sąsają, pagrindinį klasę, neturėti konstruktoriaus ir pan.).
Pavyzdys naudojant bendrą List<T> klasę:
// Visų sveikųjų skaičių sąrašo sukūrimas
List<int> numbers = new List<int>();
numbers.Add(1);
numbers.Add(2);
// Tekstinių eilučių sąrašo sukūrimas
List<string> names = new List<string>();
names.Add("Alice");
names.Add("Bob");