クラスのプロパティに一致するパラメーター名に関して、これに似た質問が表示されますが、C#の大文字と小文字を除いて、パラメータータイプ名と同じパラメーター名の使用に関しては何も見つかりません。それは私が見つけることができる違反ではないようですが、それは悪い習慣と見なされますか?たとえば、次の方法があります
public Range PadRange(Range range) {}
このメソッドは範囲を取り、パディングが適用された新しい範囲を返します。したがって、一般的なコンテキストを考えると、パラメーターのよりわかりやすい名前を考えることはできません。しかし、「心理的距離」についてのCode Completeを読んだときに拾ったヒントを思い出します。それは言います
心理的距離は、2つの項目を区別できる容易さとして定義できます...デバッグするとき、類似する変数名間および類似するルーチン名間の心理的距離が不十分であることに起因する問題に備えてください。コードを作成するときに、問題を回避できるように、大きな違いのある名前を選択してください。
私のメソッドシグネチャには多くの「範囲」が続いているため、この心理的な距離に関して問題があるように感じます。今、私は多くの開発者が次のことをしているのを見ます
public Range PadRange(Range myRange) {}
私は個人的にこの大会に強い嫌悪感を持っています。変数名に「my」プレフィックスを追加しても、追加のコンテキストは提供されません。
私はまた次を見る
public Range PadRange(Range rangeToPad) {}
「私の」プレフィックスよりもこれが好きですが、それでも全体的には気にしません。私には過度に冗長で、変数名としてぎこちなく読みます。私には、メソッド名のために範囲がパディングされることが理解されています。
このようにすべてをレイアウトしたら、私の最初は最初の署名を使用することです。私には、きれいです。不要なときにコンテキストを強制する必要はありません。しかし、私は自分自身または将来の開発者にこの慣習を傷つけていますか?ベストプラクティスに違反していますか?
Range r
少なくともメソッド本体が短い場合)およびRange toPad
。
Range range
。