Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Dim per variabili locali

Uso VB6 + SP3
Nei miei prog tengo sempre attivato Option Explicit
Visto che nelle Sub (o Function) le istruzioni Dim non devono
obbligatoriamente stare in "test" ma vengono accettate anche in "mezzo" al
codice la mia domanda è questa:
Ho qualche svantaggio a dichiararla in "mezzo"?
ESEMPIO
Sub MiaProcedura()
    if text1.text = ""
        msgbox "vuoto"
    else
        dim a as string
        a = left(text1.text,1)
        msgbox a
    end if
End Sub
A parte la stupidità della sub io sono abituato a scrivere nel seguente
modo....
Sub MiaProcedura()
dim a as string
    if text1.text = ""
        msgbox "vuoto"
    else
        a = left(text1.text,1)
        msgbox a
    end if
End Sub
.... però mi rendo conto (per quel poco che so di Stack ed affini) che forse
con il 1° modo risparmierei qualcosa.
Che ne pensate?
E' bene che mi abitui a scrivere nel 1° modo per risparmiare operazioni?
Oppure VB ha qualche comportamente nascosto per cui quella benedetta var va
poi ugualmente ad occupare spazio sullo Stack?
Consigli, pensieri, suggerimenti.............. a voi
Scusate forse mi sono espresso male ma vado di corsa!!!
--
Posted from 
relay.infogroup.it
 [195.103.148.1]
via Mailgate.ORG Server - 
http://www.mailgate.org

 ha scritto nel messaggio
news:001801bf77d5$c449bf10$7c03...@intra.it...



hmm... non sarei completamente d'accordo su questo. Potrebbe invece essere
comodo, proprio dal punto di vista della manutenibilità, avere le
dichiarazioni delle variabili subito prima del loro impiego.
Ma credo che, su questo, influiscano più di tutto il resto le abitudini dei
singoli programmatori.
--
Lunga vita e prosperità
Joshua
mailto://
jos...@mcllink.it

--
Può darsi, ma immaginati una procedura di una cinquantina di righe e tutte
le Dim sparse.
Quando vedi una variabile devi sempre pensare "e questa da dove arriva? In
cima alla sub non è dichiarata... non sarà mica globale?..." e perderesti un
mucchio di tempo solo per capire cosa sia...
Ciao

Bisognerebbe vedere cosa succede dopo la compilazione.
Fino al VB5 sono certo che la cosa non funzionasse in stile C - se non
arrivo alla dichiarazione non occupo memoria etc. - e che invece il
compilatore allocasse tutte le variabili all'inizio della routine. Da quando
il compilatore produce vero codice oggetto (usando, a occhio, un
precompilatore C) forse le cose sono cambiate. Puo' essere.
----------------------------------------------------------------------
Stefano Minardi
zet...@mclink.it
----------------------------------------------------------------------

 Le var vengono realmente instanziate solo al passaggio dal Dim!

 > Sub MiaProcedura()




;-)
Pardon! Con tanti anni alle spalle (per fortuna) di assembler, per me una
cosa che ha a che fare con un linguaggio appena un po' più alto ha per forza
un pre-compilatore!-)



Non esageriamo... io, ad esempio, dichiaro (SEMPRE) tutte le variabili
all'inizio di ogni FUNCTION (a proposito... uso solo function, nessuna sub,
o quasi), tranne i contatori, che dichiaro immediatamente (immediatamente)
prima dei cicli, non altrove. Del resto, mi è successo di leggere codice C
scritto da vari "guru", in cui si utilizzavano procedimenti simili. E' quasi
solo questione di abitudine, ripeto...


 o quasi),
Mi spieghi perchč? C'č un motivi tecnico o č solo una questione di
abitudine?
Ciao
*Roby*


Esattamente... e lì non provoca certo confusioni. Il vantaggio, poi, nel C,
è che il campo di visibilità delle variabili è ancora più ristretto.


 Pura abitudine. La programmazione è ancora per il 60% un'arte...
Io preferisco paragonarla all'artigianato. E' uno dei pochi ambiti rimasti
in cui riesci a seguire tutte le fasi della lavorazione, dall'ideazione
all'ultimazione. Mi piace pensare di essere un falegname dei byte.
Ciao
*Roby*

abitudine?
Penso che sia una questione di abitudine...
Pero ripensando, usare function al posto di sub ha un suo pregio, puoi
sapere se una routine e' andata a buon fine o no controllando il codice
di uscita
-- 
Sidewinder  
---------------------------------------------------------------------
English literature's performing flea.
		-- Sean O'Casey on P.G. Wodehouse
---------------------------------------------------------------------