Pereiti prie turinio

Rekomenduojami pranešimai

Kam reikalingos generic klases. Pvz:

 

Class Thing<T>()

{

T myValue;

}

 

Ta prasme su generics kaip ir viskas beveik aisku tarkim List<T> irgi yra klase terp .NET (Class List<T>) ir instancijuodami mes nurodome tipa vietoi T. As List<T> mintyse skaitau (List of the given type). Man idomu butu suzinoti delko developeris galetu noreti kurti generic tipo klase. Koks butu tikslas ta daryti? Jei galit pateikit pavyzdziu kur jums teko susidurti ir kuret tokia klase, ir delko priimtas buvo sis sprendimas.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Paprastas pavyzdys būtų...

Kadangi masyvai turi griežtai nurodytus tipus (int, String...), tai List (sąrašą) gali sukurti iš kokio tik nori (na, ne visiškai bet kokio) masyvo.

 

Sita as ir parasiau :) Klausimas buvo delko programuotojas noretu kurti Class<T> (Ta prasme kurti pats o ne imti is .NET) su list'ais viskas aisku. Man reikia realios situacijos, kaip pvz, Reikejo padaryti ta ir ta, ir mes nusprendem padaryti taip, delto kad tas ir tas ir t.t. Arba nebutinai realios, bet tokios kurioi reiketu tokia klase kurti blink.gif

Redagavo highontrance
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Na.. Šiaip, iš esmės, greičiausiai, galima ir be jų apsieiti.

 

Vienas iš pavyzdžių būtų, tarkim, nori sukurti objektą "Stačiakampis". Ir sukurti objektui gali turėti kelis būdus:

* Iš kelių vektorių objektų;

* Iš int;

* Iš double;

* taip toliau...

 

Disclaimer'is: Daugiausiai programuoju su PHP, tad su tokiomis užduotimis nesusiduriu. Pasakoju tik iš ne pačios didžiausios patirties su Java.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Sita as ir parasiau :) Klausimas buvo delko programuotojas noretu kurti Class<T> (Ta prasme kurti pats o ne imti is .NET) su list'ais viskas aisku. Man reikia realios situacijos, kaip pvz, Reikejo padaryti ta ir ta, ir mes nusprendem padaryti taip, delto kad tas ir tas ir t.t. Arba nebutinai realios, bet tokios kurioi reiketu tokia klase kurti blink.gif

Tai listą pakeisk bet kokia klase, kuri priima skirtingus objektus based on one or couple traits...

 

Be generics:

http://pastebin.com/NNbxCBby

var docARepo = new DocumentARepo();

Tą patį Š rašyti keliose vietose. Pats smagumas prasidėtų, kuomet DocumentsXRepository papildyti kažkuom reikėtų - tą patį devyniose vietose keisti?

 

Su generics:

http://pastebin.com/v1nFEqah

var docARepo = new DocumentRepo<DocumentA>();

Redagavo Deviltry
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Tai listą pakeisk bet kokia klase, kuri priima skirtingus objektus based on one or couple traits...

 

Be generics:

http://pastebin.com/NNbxCBby

var docARepo = new DocumentARepo();

Tą patį Š rašyti keliose vietose. Pats smagumas prasidėtų, kuomet DocumentsXRepository papildyti kažkuom reikėtų - tą patį devyniose vietose keisti?

 

Su generics:

http://pastebin.com/v1nFEqah

var docARepo = new DocumentRepo<DocumentA>();

 

Dabar kaip ir aiskiau :) dekui

Redagavo highontrance
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...