Der Unterschied zwischen ByVal & ByRef

July 4

In Visual Basic übergibt der Übergabemechanismus Argumenten an eine Prozedur. Dieses Übergabemechanismus wird mit einem der beiden Schlüsselwörter angegeben: "ByVal" oder "ByRef." Diese Schlüsselwörter können Sie angeben, ob der Wert eines Arguments übergeben oder ein Verweis auf den Wert eines Arguments ist durch den Mechanismus an die Prozedur übergeben. Bewerten Sie die Art der Funktionen, die Sie brauchen, und benennen das Schlüsselwort, das diese Art von Funktionalität am besten passt.

Was ist "ByVal"?

"ByVal" ist das Schlüsselwort, das weist den Übergabemechanismus den Wert eines Arguments an eine Prozedur übergeben. Wenn Sie ein Argument als Wert übergeben, wird Visual Basic kopiert den Wert und fügt sie in eine lokale Variable innerhalb der Prozedur. Das Schlüsselwort "ByVal" gilt in "Declare" Anweisungen "Function"-Anweisungen, "Operator"-Anweisungen, "Eigentum" Aussagen und "Sub"-Anweisungen. Unabhängig von der Art der Anweisung das Schlüsselwort "ByVal" bezieht sich immer auf den Übergabemechanismus.

Was ist "ByRef"?

"ByRef" ist das Schlüsselwort, das den Übergabemechanismus das Argument übergeben als Verweis, auch bezeichnet als Zeiger in einige Grundlagen-Programmierdokumentation beauftragt. Dies wird einen direkten Verweis des Arguments an die Prozedur. "ByRef" ist die Standardspezifikation, wenn ein Argument übergeben, aber man sollte die Spezifikation zur besseren Lesbarkeit des Codes von anderen enthalten. Das Schlüsselwort "ByRef" gilt in "Declare" Anweisungen "Funktionsanweisungen" und "Sub"-Anweisungen. Wie "ByVal" "ByRef" bezieht sich immer auf den Übergabemechanismus unabhängig von der Art der Anweisung.

Verwendung von "ByRef" und "ByVal"

Welches Stichwort, das Sie verwenden, hängt von der Funktionalität, die Sie brauchen und mit was du arbeitest. Arrays müssen als Verweis übergeben werden, so dass Sie immer "ByRef" mit einem Array verwenden würde. Wenn Sie Änderungen an das Argument und seinem Element verhindern möchten, verwenden Sie "ByVal". Dies ist da "ByVal" Änderung nicht zulässt. Wenn Sie benötigen, um Änderungen vornehmen zu können, verwenden Sie "ByRef".

"ByRef" vs. "ByVal"

Der großen Unterschied zwischen "ByRef" und "ByVal" ist "ByRef" ermöglicht das Argument Element geändert werden und "ByVal" nicht. "ByVal" übergibt nur einen Wert, wo übergibt "ByRef" eine Verbindung. "ByVal" schützt das Argument und seinem Element von Veränderung und "ByRef" ermöglicht Zugriff für Zwecke der Änderung. "ByRef" ist besser für Leistung, wo sind die große Mengen von Code im Argument beteiligt, denn "ByVal" würden alle den Code als es an die Prozedur übergebenen kopieren.