Sobes.tech
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 object naudojimu.

Veikimo principai:

  • Tipų parametrai: Apibrėžiami naudojant kampinius skliaustus <T>, kur T yra parametro pavadinimas. Galima naudoti bet kokį pavadinimą, bet T yra į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");