Bendrųjų žymų aprašymas

Generikai yra parametrinės polimorfizmo forma, kuri vyksta įvairiomis kalbomis, įskaitant .NET, Java ir Swift.

yra tam tikromis kalbomis nustatyta kalbos funkcija, apimanti formą. Paprastai jie leidžia programuotojui saugiai išreikšti tokius dalykus kaip „Kai kurių T tipų sąrašas“. Prieš įtraukdami generinius vaistus į ir kalbą, programuotojai, naudodami šias kalbas, buvo priversti atsisakyti pagrindinio Object kai naudojasi kai kuriomis bendrosios paskirties klasėmis, pvz., Rinkimo klasėmis.

Pridėjus programų, programuotojas gali naudoti tokius tipus kaip List<int> kad sukurtų tik int objektus int tipų sąrašus.

Daugiau informacijos apie pavyzdžius ir koncepcijas, specialiai skirtas C # Generics, pateikia „Microsoft“. Informaciją apie „Java“ generikus galite rasti čia .

Skirtingai nuo , generiniai vaistai paprastai apsiriboja paprastu tipų pakeitimu, nesant šablonų galimybės specializuotis tam tikruose tipuose (gėdingai piktnaudžiaujama standartinėje C + + bibliotekoje std::vector<bool> kuris iš esmės skiriasi nuo bet kurio kito std::vector<T> ). Tai taip pat reiškia, kad generiniai vaistai yra prastai pritaikyti , kuris paprastai remiasi galimybe pritaikyti bendruosius algoritmus tam tikrų tipų parametrams (vėl naudojant C ++ pavyzdį, rodykles galima naudoti su bet kuriuo universaliu algoritmu, kuris tikisi, kad argumentai bus iteratoriai)

„Java“ pamokos

  1. „Java“ bendri metodai ir bendrų klasių mokymai
  2. „Java Generics“ DUK

Bendrosios konsultacijos .NET

  1. Įvadas į generinius vaistus
  2. Su # Generics

pavyzdys

Su # be generinių vaistų

 var list = new System.Collections.Generic.List<int>(); list.Add(1); //list.Add("banana"); -- Will not compile int n = list[0]; //string s = list[1]; -- will not compile