Visual Basic) ByVal)
تعيّن أن وسيطة تم تمريرها بطريقة تجعل الإجراء الذي تم استدعاؤه أو الخاصية لا تستطيع تغيير قيمة المتغير الوسيطة في التعليمات البرمجية للمصدر.
ملاحظات
المعدل ByVal يمكن استخدامه في تلك السياقات.
مثال
يوضح المثال التالي الاستخدام آلية تمرير المعلمة 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
راجع أيضًا:
المبادئ
تمرير الوسائط بواسطة القيمة و بواسطة المرجع