Da Delphi Sie dazu bringt, bis zum var-Abschnitt einer Methode zu gehen, um eine lokale Variable zu deklarieren, finden Sie, dass Sie " Curly's Law " (Wiederverwendung von Variablen) häufiger als du es in der Schule getan hast (außer natürlich, du hast Pascal im College programmiert).
Wenn ja, was tun Sie, um sich von dieser Gewohnheit zu lösen, besonders in Funktionen, in denen Sie eine große Anzahl von Eigenschaften erhalten und / oder setzen müssen. Gibt es einen Schwellenwert, bei dem es zulässig ist, TempInt : Integer
und TempStr : String
zu deklarieren. (Verwenden Sie ein 'e' in Temp
manchmal und nicht andere Zeiten?)
Ich verwende Variablen fast nie wieder. Ich hasse es nie zu sagen, aber es ist nah an nie .
Im Allgemeinen mag ich, dass alle Variablen ganz oben stehen, aus dem gleichen Grund, aus dem ich gerne einen Schnittstellenabschnitt auf meinen Einheiten habe. Es ist so, als hätte man eine Zusammenfassung auf einem Papier - geben Sie mir eine allgemeine Vorstellung von dem, was vor sich geht, ohne das ganze Papier lesen zu müssen. Delphi könnte von der Möglichkeit profitieren, Variablen innerhalb eines für Schleifen oder andere Anfang / Ende Blöcke zu deklarieren, aber ich weiß nicht, wie viel das ist würde von der Sauberkeit und Lesbarkeit des Delphi-Codes ablenken.
Das ist nur eine Frage der Disziplin. Ja, Delphi würde wahrscheinlich besser durch Inline-Variablendeklaration bedient, aber das ist nicht wirklich eine große Sache. Seien Sie sicher, dass Sie Ihre Variablen auf eine beschreibende Weise benennen, und dann wird es sich nur peinlich anfühlen, sie falsch zu verwenden. Und, wie Stephan Eggermont sagte, wenn Ihre Methoden wirklich so lange werden, dann ist das ein völlig anderer Code-Geruch.
Nicht wirklich. Da meine Methoden sehr klein sind, ist die Var-Sektion nicht weit entfernt. Da meine Methodengröße seit der Universität stark zurückgegangen ist, würde ich sagen, dass ich sie weniger oft breche.
Ich tendiere definitiv dazu, lokale Variablen wie 'Findex' (oder einfach nur 'i') wiederzuverwenden, wenn die Routine mehrere verschiedene iterative Abschnitte enthält. Nicht wirklich die beste Praxis, die ich denke, aber ich würde denken, dass es nur wirklich offensichtlich ist, wo ich es tue, und offensichtlich überschneidet sich der Gebrauch nicht.
Es ist normalerweise keine große Sache, zum Anfang der Routine zurückzukehren und die neuen Variablen einzugeben, obwohl ich nichts von Ctrl-Shift-V wusste (wird das später versuchen!).
Es wird interessant sein zu sehen, was alle anderen sagen. : -)
Ich tendiere dazu, lokale vars nicht als allgemeine Sicherheitsregel zu verwenden. Ich liebe das neue "var" Live Template Zeug in d2007 +. Geben Sie einfach var [tab] ein und der Helfer erscheint. Überprüfen Sie auch Ctrl-Shift-D (andere erwähnten Ctrl-Shift-V für lokale Vars), um ein Feld zu deklarieren.
Sie können Ihren eigenen Codierungsstil entwickeln, der Variablen nach Bedarf verwendet. Ich benutze in der Regel einzigartige vars (90%) mit ein paar Temp vars (10%) bei Bedarf.
Es hängt von der Art der Var ab. Wenn es eine Variable ist, die anderen Code unterstützt (Zähler für Schleifen, SQL-Strings erstellen usw.), dann ist eine Temp-Variable, die Sie wiederverwenden können, hilfreich. In diesem Fall sind Ihre Temp-Variablen als "Wegwerf" -Vars in Code-Abschnitten nützlich. Fügen Sie einfach einen Kommentar zu Ihren var-Deklarationen hinzu, der die Temp-Variablen angibt.
d. // temp vars werden wie in dieser Prozedur benötigt wiederverwendet - & gt; Löschen / neu initialisieren sie nach / vor der Verwendung.
Abgesehen davon vermeide ich Temp vars & amp; Verwenden Sie sie niemals, um kritische Daten zu speichern. Eine eindeutige var sollte dann verwendet werden, um Verwirrung zu vermeiden & amp; machen die Lesbarkeit / Pflege des Codes klarer.
Ich denke, Delphi macht die Ausnahme mit der übermäßigen Verwendung von temporären Variablen. Die meiste Zeit, wenn ich eine Funktion / Prozedur erstelle, wo ich weiß, dass ich Loops oder temporäre Strings benötige, mache ich als Erstes ein var i, j: integer; tmp: Zeichenfolge; und füge bei Bedarf mehr hinzu:)
Als langjähriger Delphi-Benutzer (seit 1.0) ist das die Hauptsache, die ich an Pascal hasse. Alle anderen modernen Sprachen unterstützen die Definition zum Zeitpunkt der Verwendung, doch Delphi besteht weiterhin im var-Abschnitt, und Delphi-Programmierer bestehen in lächerlichen Hand-waving-Mätzchen, um es zu rechtfertigen.
Well Curly hatte einen guten Punkt. Ich bin in dieser Hinsicht gelegentlich ein Sünder. In der Regel nur eine temporäre Zeichenkettenvariable für mehr Bequemlichkeit als alles andere.
Um ehrlich zu sein habe ich nie wirklich darüber nachgedacht ... bis jetzt. Ich habe kein Problem damit, dass der VAR-Bereich dort ist, wo er ist, wie es seit Delphi 1.0 üblich ist.
Um die Frage zu beantworten, verwende ich nur eine temporäre Variable, normalerweise eine Zeichenfolge, und normalerweise nur, um ein paar leichte Leistungsverbesserungen zu erzielen. Habe damit kein Problem.
Ich hätte wahrscheinlich gefunden, dass dies ein größeres Problem wäre, wenn ich nicht CTRL-SHIFT-V als Verknüpfung zum VAR-Abschnitt gehabt hätte. Ich schreibe hier keine GIGANTIC-Methoden, aber manchmal geraten sie ein wenig außer Kontrolle (und das kann ich natürlich rechtfertigen) und es hilft sehr. Ich bin mir nicht sicher, ob diese Abkürzung von cnTools oder GExperts kommt, aber sie sind beide sehr nützlich und ich würde sie beide empfehlen.