10/03/09 16:57
Inserendo questo codice molto semplice:
Dim ris As Integer
Private Sub Form_Load()
ris = 3
MsgBox "ris è uguale a " & ris, vbCritical
somma (ris)
MsgBox "ris è uguale a " & ris, vbCritical
End Sub
Private Sub somma(ByRef ris As Integer)
ris = ris + 4
MsgBox "ris è uguale a " & ris, vbCritical
End Sub
l'msg successivo alla chiamata della procedura dovrebbe restituire 7, essendo la variabile ris passata per indirizzo; invece mi mostra ancora 3.
Su tutte le guide di vb la sintassi che ho usata è quella giusta;
invece se nella dichiarazione della procedura metto byref attaccato al nome della variabile funziona correttamente e alla fine mi mostra 7.
Funziona correttamente dichiarando in questo modo la procedura somma:
Private Sub somma(ByRefris As Integer)
ris = ris + 4
MsgBox "ris è uguale a " & ris, vbCritical
End Sub
Qualcuno sa spiegarmi il motivo ed eventualmente se sbaglio qualcosa?
Grazie ancora
Dim ris As Integer
Private Sub Form_Load()
ris = 3
MsgBox "ris è uguale a " & ris, vbCritical
somma (ris)
MsgBox "ris è uguale a " & ris, vbCritical
End Sub
Private Sub somma(ByRef ris As Integer)
ris = ris + 4
MsgBox "ris è uguale a " & ris, vbCritical
End Sub
l'msg successivo alla chiamata della procedura dovrebbe restituire 7, essendo la variabile ris passata per indirizzo; invece mi mostra ancora 3.
Su tutte le guide di vb la sintassi che ho usata è quella giusta;
invece se nella dichiarazione della procedura metto byref attaccato al nome della variabile funziona correttamente e alla fine mi mostra 7.
Funziona correttamente dichiarando in questo modo la procedura somma:
Private Sub somma(ByRefris As Integer)
ris = ris + 4
MsgBox "ris è uguale a " & ris, vbCritical
End Sub
Qualcuno sa spiegarmi il motivo ed eventualmente se sbaglio qualcosa?
Grazie ancora