Ich sehe ähnliche Fragen in Bezug auf Parameternamen, die mit den Eigenschaften der Klasse übereinstimmen, kann jedoch nichts in Bezug auf die Verwendung eines Parameternamens finden, der mit dem Namen des Parametertyps identisch ist, mit Ausnahme der Groß- und Kleinschreibung in C #. Es scheint keine Verletzung zu sein, die ich finden kann, aber wird es als schlechte Praxis angesehen? Zum Beispiel habe ich die folgende Methode
public Range PadRange(Range range) {}
Diese Methode nimmt einen Bereich und gibt einen neuen Bereich zurück, auf den eine Auffüllung angewendet wurde. Angesichts des allgemeinen Kontexts kann ich mir keinen aussagekräftigeren Namen für den Parameter vorstellen. Ich erinnere mich jedoch an einen Tipp, den ich beim Lesen von Code Complete über "psychologische Distanz" erhalten habe. Es sagt
Psychologische Distanz kann als die Leichtigkeit definiert werden, mit der zwei Elemente unterschieden werden können. Seien Sie beim Debuggen auf die Probleme vorbereitet, die durch eine unzureichende psychologische Distanz zwischen ähnlichen Variablennamen und zwischen ähnlichen Routinennamen verursacht werden. Wählen Sie beim Erstellen von Code Namen mit großen Unterschieden aus, um das Problem zu vermeiden.
Meine Methodensignatur hat eine Menge "Reichweite", daher scheint es ein Problem in Bezug auf diese psychologische Distanz zu sein. Nun sehe ich viele Entwickler, die Folgendes tun
public Range PadRange(Range myRange) {}
Ich persönlich habe eine starke Abneigung gegen diese Konvention. Das Hinzufügen eines "Mein" -Präfixes zu Variablennamen bietet keinen zusätzlichen Kontext.
Ich sehe auch folgendes
public Range PadRange(Range rangeToPad) {}
Mir gefällt das besser als das "my" -Präfix, aber insgesamt interessiert es mich immer noch nicht. Es fühlt sich für mich einfach zu wortreich an und liest sich unbeholfen als Variablenname. Mir ist klar, dass der Bereich aufgrund des Methodennamens aufgefüllt wird.
Nach alledem ist es mein Magen, mit der ersten Unterschrift zu beginnen. Für mich ist es sauber. Kontext muss nicht erzwungen werden, wenn er nicht benötigt wird. Aber mache ich mir selbst oder zukünftigen Entwicklern einen schlechten Dienst mit dieser Konvention? Verstoße ich gegen eine bewährte Methode?
Range r
(zumindest für einen kurzen Methodenkörper) und Range toPad
.
Range range
ist das in Ordnung.