[ Shadowed @ 08.06.2015. 22:13 ] @
Dakle, pitanje je jednostavno: da li preferirate koriscenje var ili pisanje tacnog tipa prilikom deklarisanja promenljive? I zasto.

Ja ne volim var. Jasno je da je to i dalje strongly typed (za razliku od dynamic) tako da to nije razlog, ali mi je kod necitljiv. Moram da ulozim dodatni trud da vidim kojeg je tipa promenljiva.
[edit]Npr. ako imamo var x = foo.bar(); moram proveravati sta vraca foo.bar() prelazeci misem preko. Samo na osnovu citanja koda se ne moze videti.[/edit]

Postoje dve situacije u kojima vidim potrebu/pogodnost var-a:
-Kada ti je tip promenljive klasa a kasnije hoces da promenis u interfejs ne moras menjati deklaraciju promenljive. Pri tome, ovo je tek potencijalni i one-time benefit.
-Pri koriscenju anonimnih tipova. Licno ih ne koristim, niti nesto narocito volim, tako da meni licno var nije ni ovde potreban.
[ negyxo @ 09.06.2015. 06:55 ] @
Da li koristim var? Hej, sta god treba i goto ako treba :D

Salim se.

Var koristim uglavnom uvek, zato sto mi nekako manje redundancije kada radim deklaraciju promenljivh (plus sto mi je citljivije kada ih ima vise jedna za drugom). Jedina 'mana' jeste kada se promenljiva vadi iz metoda, posto nije odma ocigledno kog je tipa.

No, moram priznati, da meni var stvarno ne igra veliku ulogu, malo mi je nejasno zasto neki developeri toliko vode racuna o var (da ne kazem drame, posto znam za neke koji bas ne vole to). Iskreno ne vidim da se nista gubi sa var, jer prostim hoverom dobijes tip, mislim svakako u mnogim slucajevima nece i deklaracija biti na vidljivom ekranu pa onda svakako moras da skrolujes ili opalis "Go to definition" da bi video tip ukoliko ne koristis var, sto kada sam vec uradio jednom, mogu jos jednom recimo i za metod :)

Ono sto je bitno u celoj prici da imas determinizam :D tj. da imas tip, da svako malo varijabla ne menja svoju definiciju kao u nekim jezicima :D
[ ravni @ 09.06.2015. 07:22 ] @
Da dodam:

var donekle olaksava refactoring jer u slucaju da se izmeni rezultat metoda (klasa B umesto klase A) ne mora svuda da se menja deklaracija promenljive. Takodje, pomaze kada se instancira nesto sa 'dugackim' imenom, tipa
Code:
ReadOnlyList<NekaKlasaSaDugimImenom>
- ne mora da se dvaput pise i gubi prostor na ekranu.

Umesto hovera, za info o tipu moze se koristiti Ctrl+K+I



S druge strane nekad je stvarno nezgodno kad se ne vidi sta je to sto metod vraca pa se to okrpi sa promenljivom
Code:
nekaKlasaSaDugimImenomList 
:)))
[ mmix @ 09.06.2015. 10:09 ] @
Ja koristim var skoro uvek, a oslanjam se na intelisense i type-check da me kontrolisu

Anonimne tipove isto koristim obilato, narocito u LINQu, tu je var manje vise neizostavan.

Zapravo, toiko sam se navukao na var da mi sada Java potpuno ide na zivce sto mi ne dozvoljava isto to

[ tdusko @ 09.06.2015. 10:21 ] @
Same here. Doduse ovaj primer sto je Shadowed napisao ima poentu, ali sam ja usvojio "konvenciju" da kada god radim debugging/review i primetim da sam na konkretnom mestu imao zadrsku da ukapiram koji tip vraca metoda, ja onda tu promenim var u konkretan tip.

Anonimne tipove takodje koristim obilato, ali isto tako cim primetim da moram vise od jednom da koristim jedan te isti ja napravim klasu.
[ mmix @ 09.06.2015. 10:37 ] @
Hehe, zato ja volim CodeRush, one click i anonymous to vise nije

[ negyxo @ 09.06.2015. 11:43 ] @
Cek malo da iskoristim temu da trolujem :D

Citat:
mmix:
Ja koristim var skoro uvek, a oslanjam se na intelisense i type-check da me kontrolisu


E recimo ovo je sustina. Ja se totalno iznerviram kada ljudi krenu o code convention, naming convention, unit testovi, da li ovo, da li ono, ali najbitnija stvar u svakom jeziku (tj. statickom) je static analysis. Znaci dzaba svi design patterni, best practices, najbolji featuri, ako bajo ne znas da iskoristis type sistem, nista od programiranja, zavrsices u spageti a da to ni ne znas ;) Nije da ostalo nije bitno, ali ovo je najbitnije, ja sam par puta u sali kolegama (mada i nije sala, to jeste cinjenica) rekao da je static analysis najpribilizniji General Ai sto imamo danas :)
[ djordjeno @ 10.06.2015. 09:27 ] @
Od skoro sam i ja poceo da pisem skoro svuda var. Prvo sam poceo u iteracijama var da pisem u svakom foreach-u. Lakse otkucas tri slova (i to sve levom rukom) nego da pises kompletan tip. Plus kad napises var nikad nece pasti kompajliranje jer sigurno nisi promasio tip:)

Video sam da i Resharper te "tera" odnosno savetuje da pises var.