Aracılığıyla paylaş


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.

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:

Declare Deyimi

Fonksiyon deyimi

Operator Deyimi

Özellik Deyimi

Alt Bildirim

Ö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

Ayrıca bakınız