ByVal (Visual Basic)
Bir bağımsız değişkenin değere göre geçirildiğini belirtir, böylece çağrılan yordam veya özellik, çağıran kodda bağımsız değişkenin temel aldığı değişkenin değerini değiştiremez. Değiştirici belirtilmezse ByVal varsayılan değerdir.
Not
Varsayılan olduğundan, yöntem imzalarında anahtar sözcüğü açıkça belirtmeniz ByVal
gerekmez. Gürültülü kod üretme eğilimindedir ve genellikle varsayılan ByRef
olmayan anahtar sözcüğün gözden kaçmasına yol açar.
Açıklamalar
Değiştirici ByVal
şu bağlamlarda kullanılabilir:
Örnek
Aşağıdaki örnekte, başvuru türü bağımsız değişkeniyle parametre geçirme mekanizmasının ByVal
kullanımı gösterilmektedir. Örnekte bağımsız değişken, sınıfının Class1
bir örneğidirc1
. ByVal
yordamlardaki kodun başvuru bağımsız değişkeninin temel değerini değiştirmesini engeller, c1
ancak erişilebilir alanlarını ve özelliklerini c1
korumaz.
Module Module1
Sub Main()
' Declare an instance of the class and assign a value to its field.
Dim c1 As New Class1()
c1.Field = 5
Console.WriteLine(c1.Field)
' Output: 5
' ByVal does not prevent changing the value of a field or property.
ChangeFieldValue(c1)
Console.WriteLine(c1.Field)
' Output: 500
' ByVal does prevent changing the value of c1 itself.
ChangeClassReference(c1)
Console.WriteLine(c1.Field)
' Output: 500
Console.ReadKey()
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