Ne radi se o tome da li se komplikuje ili ne, već o nerazumevanju čemu koji keyword služi, što vodi ka korišćenju loših praksi, a to opet dovodi do bagova koje je teško uočiti kada se ne razume suština problema. Shared ne služi da učini promenljivu globalnom, za to služi Public keyword, dok je shared keyword čini statičnom što znači da će biti deljena između svih instanci klase. Ti nisi imao problema sa tim zato što si očigledno uvek koristio samo jednu instancu klase, ali da si ih imao više, verovatno bi naleteo na probleme za koje ti ne bi bilo jasno otkud se stvoriše. Recimo, zamisli da imaš u klasi property ID koji ima za cilj da identifikuje konkretnu instancu. I ti sad otvoriš 10 instanci i svakoj dodeliš inkrementalnu vrednost 1-10 kao ID. Baš bi se iznenadio kada bi shvatio da sve instance imaju ID 10 :)
Dakle, ako je potrebna globalna promenljiva, dovoljan je Public keyword. Takođe, da bi ta promenljiva zaista bila globalno dostupna, valjalo bi je deklarisati u modulu i onda možeš da joj pristupaš bez navođenja naziva klase. Na isti način treba pisati globalne funkcije i procedure.
Inače to sa tagom nije loš način za prosleđivanje vrednosti novoj formi, ali bih ja predložio da se to ipak uradi na drugačiji način koji je malo više OOP. Dakle, napraviš klasu koja nasleđuje od klase forme kojoj se pristupa, i onda umesto da kreiraš instancu forme, kreiraš instancu klase koja nasleđuje od te forme, a u derived klasi napraviš property-je koji predstavljaju podatke koji trebaju da se koriste u novoj formi. Na taj način dobijaš na skalabilnosti, jer ako ti ikada treba da proslediš neke nove vrednosti, koje su možda drugačijeg tipa, samo dodaš nove property-je. Ako ti treba drugačije ponašanje forme u odnosu na neku odabranu opciju, možeš to da odradiš kroz konstruktore u svojoj klasi. Takođe, izbegavaš potrebu za konverzijom između različitih tipova podataka, jer Tag je svojstvo tipa Object i primiće šta god mu pošalješ, ali kada to treba da iskoristiš, može doći do raznih grešaka, jer sistem ne zna sa kojim tipom podatka radi. Sa takvim načinom programiranja, kladim se da bi kad bi uključio Option Strickt On, dobio jedno stotinak grešaka u kodu :) A da ne pričamo o tome da je na ovaj način i inteli-sense svestan postojanja tih property-ja, pa ti je lakše da se snađeš u kodu prilikom prepravki, itd.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti