Kostet es nicht mehr, die Variablenzuweisung über einen Konstruktor zu übergeben, weil sich der Status ändert?
Wäre es nicht billiger, sie nur im Code zuzuweisen?
Ich frage mich, ob die Verwendung eines Konstruktors Vorteile bietet, die ich nicht in Betracht ziehe.
Ich freue mich über Informationen zu den Gründen für die Verwendung eines Konstruktors zum Zuweisen von Werten, da ich nicht erkennen kann, warum dies von Vorteil ist.
Danke Leute.
Ich vermute, Sie sprechen über den Fall, dass die Argumente für den Konstruktor vor der Bereitstellung im Voraus bekannt sind. In diesem Fall haben Sie Recht, es ist effizienter, die Konstruktorparameter zu entfernen und sie als Konstanten im Code hinzuzufügen, wodurch möglicherweise einige Statusvariablen eliminiert und Gas gespart werden.
Es gibt jedoch Fälle, in denen es nicht möglich ist, Zustandsvariablen auf diese Weise durch Konstanten zu ersetzen, z. B. wenn eine Zustandsvariable veränderbar sein muss, dh später im Lebenszyklus des Vertrags aktualisiert werden kann. Das Eliminieren der Konstruktorparameter ist in diesem Fall also nicht von großem Vorteil.
Ein weiterer Fall, in dem Konstruktorparameter nützlich sind, besteht darin, dass Vertragsinstanzen in einem anderen Vertrag erstellt werden. Angenommen, es gibt Vertrag A, der Instanzen von Vertrag B erstellen muss, und diese Instanzen sollten unterschiedliche Namen haben. Der Name muss in diesem Fall ein Konstruktorparameter sein. Sie können stattdessen den Bytecode von B jedes Mal vor der Bereitstellung mit dem neuen Namen aktualisieren (dies ist möglich, wie in den Kommentaren als @flygoing erwähnt). Dies erfordert jedoch die Verwendung von Assembly und ist möglicherweise fehleranfällig.
Hoffe meine Erklärungen sind klar.
fliegend
medvedev1088
fliegend