Was bedeutet ByRef bedeutet in vbscript bei der übergabe an eine Prozedur?
Habe ich den nächsten start für einen Prozeduraufruf
strReturn = OrderCreate(strGen8, _
strUID, _
Order, _
boolRecapFlag, _
Und an der Funktion erhält die Parameter, die wir haben..
function OrderCreate(strCoDiv, strUID, byRef Order, boolRecap, strBillFirst, etc.
Da konnte ich nicht finden, überall dort, wo Um die Werte waren immer an die prodcedure.
Ich bin dann davon ausgegangen, dass die ByRef-macht es möglich, um Daten aus dem Verfahren? Mit der Reihenfolge variable-name?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Parameter übergeben werden können, die einer Funktion auf zwei Arten: durch Verweis (ByRef) oder als Wert (ByVal). In VBScript die Standard-Methode ist ByRef.
Wenn Sie einen Wert übergeben nach Verweis übergeben Sie eine Referenz, die Variablen Adresse im Speicher. Dies bedeutet, dass änderungen in Ihrer Funktion bestehen bleiben, sobald Ihre Funktion existiert. Es kann auch verwendet werden, um zu helfen Steuern Sie die Art, wie Ihr script verwaltet den Speicher, da die Daten in einer Variablen gespeichert wird nur einmal geschrieben in Erinnerung.
Übergabe eines Parameters by value wird eine Kopie der Variablen im Speicher in den neuen Bereich. Änderungen zu diesen Informationen innerhalb des neuen Bereichs haben keine Auswirkungen auf die Daten in andere Bereiche.
Function TheAnswer(v) : v = 42 : End Function
dannv = "Question" : call TheAnswer( v ) ' v becomes 42
aber wenn gewickelt:v = "Question" : call TheAnswer( (v) ) ' v is still "Question"
byRef bedeutet, Sie übergeben eine Referenz auf die ursprüngliche variable. Also, wenn Sie ändern Sie den Wert in der Funktion ist es wider zurück auf die ursprüngliche
Diese unterscheidet sich von byVal, die die Werte übergibt und macht eine unabhängige Kopie.
Den Unterschied zwischen byref und byval
Nach dem oben sub ( bemerken es nicht einmal eine Funktion! ), my_org_age und my_wife_org_age wil, zehn Jahre jünger!
Das ist, weil die entsprechende Funktion nimmt hier seine Argumente byREf
Nun, wenn Sie entfernen die "byRef" Worte aus ihm heraus, und führen Sie dann
werden Sie feststellen, dass unser Zeitalter nicht geändert.
Den Unterschied sehen, was byRef bedeutet jetzt?
HTH