ByVal (Visual Basic)
指定一種傳遞引數的方式,如果使用這種方式,呼叫的程序或屬性 (Property) 便無法變更呼叫程式碼中引數所含的變數值。
備註
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(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