Die MSDN- Seite ByRef
und die ByVal
Schlüsselwörter sind nicht sehr hilfreich. Wenn ich es nicht irgendwie übersprungen habe, werden sie einfach überall als "Schlüsselwörter" bezeichnet.
Einer der Hauptverantwortlichen des Rubberduck- Projekts arbeitet an einem sehr coolen Encapsulate Field- Refactoring, und die Benutzeroberfläche kommt ziemlich gut voran. Außer ich habe ein Problem mit dem Etikett über dem Dropdown-Menü für ByRef
/ ByVal
, auf dem "Barrierefreiheit" steht:
Ich mag "Barrierefreiheit" nicht, weil ich es an anderer Stelle für Public
/ Private
/ Friend
Zugriffsmodifikatoren verwende, wo es sich genauer anfühlt.
Ich möchte "Modifier" nicht verwenden, da IMO nur eine Abkürzung für "Access Modifier" ist.
Ich möchte, dass dieses Etikett korrekt ist, aber mein Wortschatz fehlt anscheinend und ich weiß nicht, wie ich diese Schlüsselwörter nennen soll.
Was sollte dieses Etikett sagen, um genau zu sein? Was ist das Wort, das ich suche? Zu welcher "Familie von Schlüsselwörtern" gehören ByRef
/ ByVal
gehören sie?
ByVal
ohne die Möglichkeit machen, es zu ändern,ByRef
außer den generierten Code manuell zu bearbeiten, und "Problem gelöst"! VBA kann eine enorme Menge an bösem Unsinn zusammenstellen, den Sie kennen :-) Trotzdem gefällt mir, dass es endlich einen Online-Platz gibt, der diesen Schlüsselwörtern einen Namen gibt.Antworten:
In diesem Fall würde ich "Pass As" (oder "Pass") verwenden.
Sie haben einen Flow, der perfekt zu dieser Verwendung passt.
Dies passt perfekt zu Ihrem Workflow und ist im Übrigen genau das, was der Artikel, auf den Sie verweisen, angibt.
Wenn Sie Ihre Optionen durchlesen, wird es bei Verwendung von "Pass As" perfekt gelesen, da Sie einfach die Überschrift durchlesen und den Text entsprechend auswählen können - "'Variablenname' foo, 'Pass As' -Wert."
Wenn Sie die Lesbarkeit verbessern möchten , können Sie die Listenoptionen "Wert" und "Referenz" festlegen, je nachdem, ob Ihre Zielgruppe VBA-Programmierer oder Nicht-VBA-Programmierer sind, die mit den Schlüsselwörtern ByVal und ByRef möglicherweise etwas weniger vertraut sind.
Oder ändern Sie es alternativ in "Pass:" und machen Sie es in der Dropdown-Liste zu "By Reference (ByRef)" und "By Value (ByVal)". Es sieht so aus, als hätte Ihr Dropdown-Menü Platz, um den gesamten Text anzuzeigen. Oder nur die ByRef / ByVal-Schlüsselwörter.
quelle
Ich würde einen dieser drei Begriffe verwenden, um ein Dropdown-Menü zu kennzeichnen, in dem Folgendes ausgewählt wird:
quelle
"Pass By Semantics" ist wahrscheinlich dem am nächsten, was Sie suchen.
quelle
Der genaueste und formalste Begriff hierfür wäre "Aliasing-Semantik".
Bei
ByRef
Verwendung ist der Name in der Funktion ein Alias für die Variable des Aufrufers - alle Änderungen an beiden sind sofort für den anderen sichtbar. MitByVal
ist der Name in der Funktion eine eindeutige Kopie der Variablen des Aufrufers (natürlich können sich sowohl die Kopie des Aufrufers als auch der Funktion auf dasselbe Objekt beziehen, aber sie unterscheiden sich darin, dass die Neuzuweisung des Parameters innerhalb der Funktion die Variable des Aufrufers nicht neu zuweist ).Die Optionen wären
ByRef
)ByVal
)Einige Plattformen fügen eine dritte Möglichkeit hinzu, bei der das Aliasing der Variablen des Aufrufers durchgeführt wird, es jedoch nicht zulässig ist, dass mehr als ein Parameter überlappende Objekte aliasisiert. (Die Idee hinter dem C-
restrict
Schlüsselwort findet man auch in IDL, wo sich das Attribut-Schlüsselwort befindetunique
). .NET bietet keine gute Möglichkeit, dieses Wissen zu verschlüsseln.quelle
Ich würde es eine "[Argument] Kategorie" nennen.
Das Argument hat einen Namen, einen Typ und eine Kategorie.
quelle