Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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.
Uyarı
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 Class1bir örneğidirc1.
ByVal yordamlardaki kodun başvuru bağımsız değişkeninin temel değerini değiştirmesini engeller, c1ancak erişilebilir alanlarını ve özelliklerini c1korumaz.
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