ByVal (Visual Basic)
Specifica che un argomento viene passato in modo tale che la routine o la proprietà chiamata non sia in grado di modificare il valore della variabile sottostante nel codice chiamante.
Note
Il modificatore ByVal può essere utilizzato nei seguenti contesti:
Istruzione Function (Visual Basic)
Esempio
Nell'esempio seguente viene illustrato l'utilizzo del meccanismo di passaggio del parametro ByVal con un argomento del tipo di riferimento. Nell'esempio l'argomento è c1, un'istanza della classe Class1. ByVal impedisce al codice nelle routine di modificare il valore sottostante dell'argomento di riferimento, c1, ma non protegge i campi e le proprietà accessibili di c1.
Module Module1
Sub Main()
' Declare an instance of the class and assign a value to its field.
Dim c1 As Class1 = New Class1()
c1.Field = 5
Console.WriteLine("Original value for the field: " & c1.Field)
' ByVal does not prevent changing the value of a field or property.
ChangeFieldValue(c1)
Console.WriteLine("Value of field after ChangeFieldValue: " & c1.Field)
' ByVal does prevent changing the value of c1 itself.
ChangeClassReference(c1)
Console.WriteLine("Value of field after ChangeClassReference: " & c1.Field)
End Sub
Public Sub ChangeFieldValue(ByVal cls As Class1)
cls.Field = 500
End Sub
Public Sub ChangeClassReference(ByVal cls As Class1)
cls = New Class1()
cls.Field = 1000
End Sub
Public Class Class1
Public Field As Integer
End Class
End Module
Vedere anche
Concetti
Passaggio di argomenti per valore e per riferimento (Visual Basic)