Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megadja, hogy az argumentumot érték adja át, így a hívott eljárás vagy tulajdonság nem módosíthatja az argumentum alapjául szolgáló változó értékét a hívókódban. Ha nincs megadva módosító, akkor a ByVal az alapértelmezett érték.
Megjegyzés:
Mivel ez az alapértelmezett érték, nem kell explicit módon megadnia a kulcsszót a ByVal metódus-aláírásokban. Általában zajos kódot hoz létre, és gyakran a nem alapértelmezett ByRef kulcsszó figyelmen kívül hagyásához vezet.
Megjegyzések
A ByVal módosító az alábbi környezetekben használható:
példa
Az alábbi példa a paraméterátadási ByVal mechanizmus használatát mutatja be hivatkozástípus-argumentummal. A példában az argumentum az c1osztály Class1egy példánya.
ByVal megakadályozza, hogy az eljárások kódja módosítsa a referenciaargumentum mögöttes értékét, c1de nem védi az akadálymentes mezőket és tulajdonságokat c1.
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