Was bedeuten die Schlüsselwörter ByVal und ByRef? ByVal legt fest, dass ein Argument als Wert übergeben wird, d. h. der Wert eines Arguments wird an eine Prozedur oder Funktion anstelle der Adresse übergeben. Dadurch kann die Prozedur auf ein Kopie der Variablen zugreifen. Das bedeutet, dass der aktuelle Wert der Variablen nicht von der Prozedur verändert werden kann, an die er übergeben wird. ByRef legt fest, dass das Argument als Verweis übergeben wird, d. h. die Adresse eines Arguments wird an eine Prozedur oder Funktion anstelle des Werts übergeben. Dadurch kann die Prozedur auf die tatsächliche Variable zugreifen. Das bedeutet, dass der aktuelle Wert der Variablen von der Prozedur geändert werden kann, an die er übergeben wird. Wenn nichts anderes angegeben wird, werden Argumente als Referenz übergeben, da ByRef der Standardwert in Visual Basic ist. Um das auszuprobieren, starten Sie ein neues Projekt und platzieren auf der Form 2 CommandButtons, die Sie wie folgt benennen: Name = Command1, Caption = ByRef, Name = Command2, Caption = ByVal. Dann noch folgender Code: ' Parameterübergabe ByRef Function RechneA(x As Long, y As Long) As Long RechneA = (x + y) x = x + 1 End Function Private Sub Command1_Click() Dim x As Long, y As Long x = 5 y = 6 MsgBox RechneA(x, y) MsgBox x End Sub In diesem Beispiel wird durch ByRef die Variable selbst übergeben. Als Ergebnis wird angezeigt: 11 und 6. Die Funktion hat durch ByRef die übergebene Variable verändert, was mit ByVal nicht passiert wäre. ' Parameterübergabe ByVal Function RechneB(ByVal x As Long, ByVal y As Long) As Long RechneB = (x + y) x = x + 1 End Function Private Sub Command2_Click() Dim x As Long, y As Long x = 5 y = 6 MsgBox RechneB(x, y) MsgBox x End Sub In diesem Beispiel wird durch ByVal nur der Wert übergeben: 5 und 6. Als Ergebnis wird angezeigt: 11 und 5. Diese Seite wurde bereits 36.310 mal aufgerufen. |
sevISDN 1.0 Überwachung aller eingehender Anrufe! Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Buchempfehlung Tipp des Monats April 2024 Skyfloy Chart von Microsoft und dazu noch gratis Tutorial für Microsoft Chart Controls für Microsoft .NET Framework 3.5 sevOutBar 4.0 Vertikale Menüleisten á la Outlook Erstellen von Outlook ähnlichen Benutzer- interfaces - mit beliebig vielen Gruppen und Symboleinträgen. Moderner OfficeXP-Style mit Farbverläufen, Balloon-Tips, u.v.m. |
||||||||||
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein. |