Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Posizione dichiarazione variabili

In VB le variabili possono essere dichiarate in qualsiasi punto delle sub e
non necessariamente all'inizio come altri linguaggi.
Quello che mi chiedevo e': e' piu' elegante e pulito farlo comunque
(dichiarazioni tutte all'inizio della sub) oppure no?
La "didattica informatica" cosa insegna in questo caso?
Ciao a tutti.

Mela <melani...@tiscalinet.COM> wrote in message
9ni3e0$7i697$1...@ID-6300.news.dfncis.de...

Mi viene da rispondere solo perche' hai scritto un subject corretto :)))
Purtroppo non so cosa dirti.
    Dim saluto As String
    saluto$ = "CIAO!!"
    Debug.Print saluto$
CIAO!!

beh, che sappia io se metti una dichiarazione "Dim Pippo as Integer"
all'inizio di una Sub, allora la variabile viene sempre
dichiarata.....mentre se ad esempio viene posizionata all'interno di una If,
allora la variabile viene dichiarata solamente se l'If restituisce Vero.
Quindi hai un risparmio di memoria, soprattutto se invece di una semplice
Integer, magari devi dichiarare un array, e un oggetto piů o meno
pesante.......
dal punto di vista dell'eleganza del codice, non ti saprei dire......
io preferisco dichiarare sempre e comunque tutte le variabili all'inizio,
indipendentemente dal fatto che poi mi servano effettivamente oppure
no......
č vero che puň esserci uno spreco di memoria, perň si tratta in fin dei
conti di variabili locali alla Sub, quindi il danno non credo che sia cosě
elevato......o no?
se devo debuggare una Sub, invece di andare a cercare le Dim in tutta la sua
lunghezza (guardando le righe una ad una, soprattutto se č una Sub che non
tocco da un po'), vado all'inizio e leggo velocemente tutte le Dim....non
so, magari sono io paranoico, perň preferisco cosě!!!!
Tu cosa dici?
Good coding!!!
--
Damiani Liborio Igor
idam...@hotmail.com
 - 
igor.d...@light.it
http://www.igordamiani.it
ICQ : 11847262

"Mela" <melani...@tiscalinet.COM> ha scritto nel messaggio
news:9ni3e0$7i697$1...@ID-6300.news.dfncis.de...

dichiarare variabile "nelle sub" significa allocarle nello stack ed essendo
lo stesso non enorme potresti esaurirlo facilmente.Un mio consiglio è di
usare le dichiarazioni nelle sub con moderazione soprattutto con funzioni
ricorsive.
ciao
--
-------
sito: 
www.dadev.it
ultime: Ocx per irc testi freeware
-------

 so, magari sono io paranoico, però preferisco così!!!!
in C dove le allocazioni funzionano nella maniera corretta si utilizza
l'allocazione
delle variabili dove servono, ma in un linguaggio come VB non ne vale
proprio
la pena IMHO ;)
--
Fibia "BrokenHeart" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #26 delle Mitiche Brigate Takahashi sezione Sud

> Tu cosa dici?
Tralasciando risparmio di memoria e simili, che in PC con 256 mb hanno poca
importanza, la mia perplessita' e' incentrata sulla leggibilita' e pulizia
del codice.
Mi e' stato insegnato che e' piu' corretto dichiarare tutto all'inizio,
pero' non ne sono convinto al 100%.
Tante volte una variabile viene utilizzata solamente in 2-3 righe di codice
consecutive. Nel caso puo' essere visivamente piu' corretto dichiararla
immediatamente prima delle righe e non all'inizio della sub.
Questo pero' fa storcere un po' il naso ai "puristi"... non saprei, ho aprto
il thread proprio per questo ;-)

"Mela" <melani...@tiscalinet.COM> ha scritto nel messaggio
news:9ni3e0$7i697$1...@ID-6300.news.dfncis.de...

Non è solo "più elegante", è fondamentale per garantirti un minimo di
leggibilità.
ciao
ugo


Il problema è proprio questo: quando tra sei mesi dovrai modificare il
programma, dovrai cercare ovunque se la variabile "nCount" è già usata...
ciao
ugo

 non ne vale proprio la pena IMHO ;)
In C, se non hanno cambiato qualcosa negli ultimi giorni, e' obbligatorio
dichiarare le variabili all'inizio della funzione, ed esse hanno scope
locale alla funzione. In C++ no, ed e' buona norma dichiararle solo quando
servono, sia perche' cosi' si puo' evitare di allocare memoria per variabili
che potrebbero non essere mai utilizzate, sia perche' cosi' e' possibile
inizializzarle al momento della dichiarazione.
In 
VB.NET
 le variabili avranno scope locale al blocco e sara' possibile
inizializzarle alla dichiarazione, rendendo migliore la loro dichiarazone
solo dove servono, e non all'inizio della funzione.
Ciao.

 bensi' alla funzione, e per questo e' meglio dichiararle tutte all'inizio.
nel rispetto di quanto detto prima perň!
form_load()
  msgbox bla   ' qui da errore
  if 0 > 1 then dim bla
  msgbox bla   ' da qui in poi non da piů errore
--
Fibia "Service Bot" FBI


 programma, dovrai cercare ovunque se la variabile "nCount" è già usata...
condivido
se per assurdo ogni variabile dichiarata in cima costasse il doppio dello
spazio di allocazione rispetto che inserita in un punto a casaccio io
continuerei a metterla in cima :)
--
Fibia "Sakamoto" FBI


 nel rispetto di quanto detto prima perņ!
Certamente, la stupidita' del VB e' quella di non obbligare a
dichiarare le variabili all'inizio, dato che hanno scope locale
all'intera funzione e quindi una dichiarazione all'interno del
codice non ha senso.
Ciao.

 metterla in cima :)
E questo e' un grosso sbaglio.
In un linguaggio che permetta di dichiarare variabili con scope
locale al blocco (e l'inizializzazione all'atto della dichiarazione)
dichiarare tutte le variabili all'inizio e' un errore.
D'altra parte non trovare la dichiarazione di una variabile mi pare
piu' un sintomo di codice non scritto bene che un problema di
posizione.
Funzioni ben scritte (max 20 - 30 righe), variabili con nomi ben
significativi e dallo scope "il piu' locale possibile", mettono al
riparo da qualunque problema del genere.
Ciao.


mmm... condividerei appieno se mi parlassi di un driver o di una dll di
sistema.
Un po' meno se mi parli di un applicativo database, di un gestionale, di un
qualsiasi cosa insomma che non può certo soffrire i pochi bytes di mem
sprecati per un paio di variabili dichairate in testa alla func. E che, per
contro, ne beneficia in termini di leggibilità.
ciao
ugo

 contro, ne beneficia in termini di leggibilità.
Sinceramente continuo a non vedere come la posizione della
dichiarazione delle variabili possa rendere meno leggibile il
codice.
Se una funzione e' scritta a dovere problemi di manutenzione e/o di
modifica del codice non si pongono anche a distanza di tempo.
D'altra parte la possibilita' di inizializzare le variabili nella
dichiarazione e di evitare di allocare memoria per variabili che
potrebbero non essere mai utilizzate (e che oltretutto restringono
il campo dei nomi utilizzabili), permette di scrivere codice
maggiormente a prova di errori.
Ciao.

 maggiormente a prova di errori.
stiamo parlando di VB o di altri linguaggi? :)
la mia affermazione si riferiva esclusivamente al VB.. dove l'inizializ-
zazione non viene effettuata in maniera DECENTE.
in altri linguaggi io sono il primo che inizializza i dati locali al blocco
come il tipico:
for(int i = 0; i < y; i++) y++;
:))
ma in VB francamente non vedo né la necessità né l'utilità di una
tale operazione :P
anche perché i dati allocati non vengono deallocati all'uscita del
blocco :p
--
Fibia "LightHeart" FBI


 effettuata in maniera DECENTE.
In VB (quello attuale) effettivamente non ha alcun senso dichiarare
le variabili all'interno del codice.
Ciao.