Newsgroup: it.comp.lang.visual-basic
Titolo: ByVal

Se io ho un aromento qualsiasi, cosa cambia
se metto ByVal?
Cioe':
Private Function Cubo(Base as Integer) as Long
e' diverso da
Private Function Cubo(ByVal Base as Integer) as Long
???
Ciao Giulio

 ha scritto nel messaggio
news:vh1_5.100878$hk4.3...@news.infostrada.it...




"vediamo se ho capito un po' di vb": è il messaggio di questa mattina di "Mauro"... se lo leggevi
trovavi la risposta...
Ciao,
Moreno
#sirri#@#morenosoft#.com
(togliete "#" dall'indirizzo)
Moreno Sirri VB Site - 
http://www.morenosoft.com/MSVBSite/
---------------------------------------------------------------------------
Le risposte alle tue domande le trovi sul Sito Comune di questo NewsGroup:
 
http://www.murialdo.it/it_lang_vb
---------------------------------------------------------------------------

MSDN
Ma come???
L'ultima volta che ti ho detto io di guardare la quida in linea mi sei
saltato addosso! :)
Vabbeh, comunque scusa (scusa per il mio modo di fare, non per l'idea di
fondo).
Ciao

 Ciao
Sbagliando SIM'PARA
Ciao

 wrote in message
news:8fmh3tgcbntuv74oo...@4ax.com...


ByVal passa la variabile vera e propria (o meglio una sua copia)
ByRef passa solo l'indirizzo di memoria della variabile
e qui comincera' un putiferio!
--
ciao
SaL
Pullo ha scritto nel messaggio ...


 e qui comincera' un putiferio!
ammetto che non ne capisco una mazza
ma avrei giurato che la variabile vera e propria sia quella al suo
indirizzo, non la copia.
cioe' se alteri la memoria (la var) all'indirizzo di byref, alteri la var
originaria.
se la passi byval la var originaria resta intoccata.
sbaglio ?

 Cfr. il mio post "[OT] Filtri filtrini e filtrucci"
capperi, non lo trovo.
ho messo il filtro a tutti gli [ot].
non vedo piu' neanche i miei messaggi...
questo outlook, che schifezza...
:)

 wrote in message
news:91d5ai$3obf3$1...@ID-51318.news.dfncis.de...


ByRef la "vera e propria" variabile...
io direi piu' semplicemente:
ByVal viene passato il valore,
ByRef viene passato l'indirizzo di memoria della variabile che contiene quel
valore
--
ciao
SaL

 wrote in message news:3a3a338f$1...@adm.eni.it...

Si ma il discorso verteva da un problema linguistico su cosa si intenda con
'variabile vera e propria' :)
Ciaotutti,
a.

 'variabile vera e propria' :)
facciamo cosi':
tu ti cloni in ologramma e
-- mi mandi l'ologramma
-- mi dici dove stai
io mi spigrisco e
-- do' una randellata all'ologramma
-- arrivo dove mi hai detto e do' una randellata a te
se mi dici "la seconda che hai detto"
arrivo...
:)

 wrote in message
news:91ddl8$3nsg1$1...@ID-51318.news.dfncis.de...

Uhm... Ti offendi parecchio se ti dico che non ho afferrato? :)
Ciaotutti,
Alessandro

 Alessandro
Piů che offendersi ... potrebbe percuoterti (e non il tuo ologramma)!
Andate a leggere il posto appena arrivato di Mr "mouse" !
vi dico solo una cosa :
Subject : AIUTOOOOOOOO!

 Più che offendersi ... potrebbe percuoterti (e non il tuo ologramma)!


 Piů che offendersi ... potrebbe percuoterti (e non il tuo ologramma)!
bravo



Scusa se continuo la conversazione ma mi ha appena replicato in privato, ed
ho scoperto che è una ragazza .. e si è anche un po' incas !
Io la considero fortunata per il momento ... visto che Stracca non le ha
ancora risposto
Salut        (<- è francese)

 wrote in message
vh1_5.100878$hk4.3...@news.infostrada.it...


 Questa è una delle cose di questo NG che mi fa
impazzire!!!!!!!!!!!!!!!!!!!
gia'. mi sa che se lo sta dicendo anche il buon pullo... un thread che mai,
e vigliacco se uno ha risposto alla sua domanda, povero pullo :)
dunque, provo. prego correggere, cosi' facciamo un bel friday night fever :)
func cubo (byval n as integer) as long
    cubo = n^3
end func
x = 3 : y = cubo(x) ---> y = 9, x= 3
func cubo (byref n as integer) as long
    cubo = n^3
end func
x = 3 : y = cubo(x) ---> y = 9, x = 9
be', mi sono sbilanciato. siate pietosi, ho anche l'influenza...

 wrote in message
91dm1j$3tbm6$1...@ID-51318.news.dfncis.de...



Questo lo avevo gia' capito.
Ciao
Aldo

 wrote in message
91dm1j$3tbm6$1...@ID-51318.news.dfncis.de...

nonono! :)))))
byval indica che la funzione "lavora" su una copia della variabile, quindi
nell'es. se modifico n all'interno della function, allora (con byval) il
valore originario (all'esterno della function, cioè nella routine chiamante)
non viene cambiato. Al contrario con byref (che è il default) il valore
originario risulta cambiato.
Ma nell'esempio fatto non viene modificato il valore di n all'interno della
function, quindi non c'è nessuna differenza.
Ciao, Mat

 Ciao, Mat
sei stato abbastanza pietoso :)
ma nell'esempio qui su mi sembrava che passandogli x, x cambiasse.
come dovrebbe essere allora ?
ciao, a.

 ciao, a.
Private Function Cubo(x As Integer)
    Cubo=x^3
End Function
Private Sub Cubo (x As Integer)
    x=x^3
End Sub
Stessa funzione, scritta in due modi diversi.
Ciaotutti,
Alessandro

End Sub
Alessandro... pero' se volevi essere didatticamente piu' preciso avresti
dovuto scrivere:
Private Function Cubo(ByVal x As Integer) As Long
    Cubo=x^3
End Function
Private Sub Cubo (ByRef x As Integer)
    x=x^3
End Sub
--
ciao
SaL

 End Sub
Questa la capisco.
Ciao a tutti

 che validita ha questa variabile?
Non afferro il senso di queste osservazioni. In linea di principio non vedo
perche' dovrebbe esistere una relazione fra il tipo di dato in entrata e
quello in uscita.
Consideriamo il seguente prototipo:
Private Function GetConnection(ByVal strConn As String) As Connection
Riceve una string e restituisce una connection. Mi sembra regolare.
Ciao
Aldo

 End Sub
Visto che la didattica non e` una scienza ;-)) mi permetto di dissentire,
caro co00816.
La funzione Cubo proposta da *Alessandro* "dimostra" che non e` rilevante
*come* venga passato l'argomento (ByVal/ByRef) quando tale argomento non
venga modificato dalla funzione che lo riceve.
Resta ovviamente aperta la questione, in termini di efficienza e
manutenibilita` del codice, della convenienza di passare ByVal o ByRef un
tale argomento.
--
Ciao.
Maurizio
--------
?SPQR(C)
 X
--------


Ok, riformulo.
Premetto che faccio tutte queste domandacce per cercare di capire meglio il
funzionamento di tutto.
Questa funzione, restituisce una connessione ,prendendo invece una stringa,
a chi? A chi la chiama? Se si, penso di aver meglio capito l'uso delle
funzioni e dei propri argomenti.

 a chi? A chi la chiama?
Yes, Sir.
Io mi immagino una funzione come una scatola nera che riceve qualcosa in
ingresso e produce qualcos' altro in uscita.
Oppure, ancora, come un contratto tra il chiamante e la funzione stessa.
Dal punto di vista di chi chiama non dovrebbe avere alcuna importanza il
"come" la funzione produca il proprio risultato. Dal punto di vista della
funzione non dovrebbe avere alcuna importanza il chi e perche' chiama e cosa
abbia intenzione di fare con il risultato ottenuto.
Quindi:
1) se la funzione riceve un parametro ByVal, garantisce il chiamante da
eventuali modifiche al valore originario;
2) se lo riceve ByRef e' perche' intende modificare tale valore oppure ci
sono motivi di efficienza che consigliano il passaggio di un indirizzo; in
quest' ultimo caso, pero', il chiamante compie un atto di fede.
Ciao
Aldo