Visual Basic) ByVal)

تعيّن أن وسيطة تم تمريرها بطريقة تجعل الإجراء الذي تم استدعاؤه أو الخاصية لا تستطيع تغيير قيمة المتغير الوسيطة في التعليمات البرمجية للمصدر.

ملاحظات

المعدل ByVal يمكن استخدامه في تلك السياقات.

عبارة التعريف

كشف دالة (Visual Basic)

كشف العامل

كشف الخاصية

عبارة Vsual Basic) Sub)

مثال

يوضح المثال التالي الاستخدام آلية تمرير المعلمة ByVal مع وسيطة نوع المرجع. في المثال، يعتبر وسيطة c1، مثيل فئة Class1. تمنع ByVal التعليمات البرمجية في الإجراءات من تغيير القيمة الأساسية من الوسيطة المرجع c1، ولكن لا يحمي الخصائص والحقول التي يمكن الوصول إليها في 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

راجع أيضًا:

المبادئ

تمرير الوسائط بواسطة القيمة و بواسطة المرجع

موارد أخرى

الكلمات الأساسية (Visual Basic)