大きなスコープの関数変数の適切な命名規則は何ですか?

StackOverflow https://stackoverflow.com/questions/151594

  •  02-07-2019
  •  | 
  •  

質問

クラスメンバー、静的オブジェクト、グローバルオブジェクト、および構造体には、異なる命名規則を使用できます。それらの例の一部を以下に示します。

_member
m_member

またはJavaの場合、 this.member の使用。

しかし、単一の変数に完全な関数スコープまたは短い寿命スコープがある場合に伝える、関数変数スコープの良いテクニックや命名規則はありますか?

void MyFunction()
{
  int functionScopeVariable;

  if(true)
  {
    //no need for function variable scope naming convention
  }
}
役に立ちましたか?

解決

" local。"の関数では、接頭辞l_を使用する傾向があります。そして、それはかなりうまくいきました。

他のヒント

実際に、使用するIDE /エディターにこのタスクを委任することをお勧めします。

いいえ、私は実際に変数の命名について話しているわけではありません。ただし、このような命名戦略の基本的なタスクは、1つの名前が表す変数のタイプを示すことです。

ほとんどすべてのIDEは、その価値に見合うように、さまざまなスタイル(色、フォント、フォントタイプなど)をさまざまな変数タイプ(インスタンスメンバー、静的メンバー、引数、ローカル変数など)に定義できるため、IDE変数の種類を実際に教えて、それらの(そうでなければ役に立たない)接頭辞や接尾辞を毎回入力する必要がないようにします。

だから私の提案:プレフィックスやサフィックスのない意味のある名前を使用してください。

1つの方法は、変数のスコープが大きいほど名前が長くなるというガイドラインに従うことです。このようにして、グローバル変数は長い説明的な名前を取得しますが、ループインデックス変数のようなスコープが制限されたものは1文字のように小さくすることができます。

グローバル変数、静的変数、およびメンバー変数にプレフィックスまたは特別な命名規則を使用しているため、ローカルでプレフィックスを使用する必要はありません。特にループ変数の場合は、短いローカル変数名を使用するオプションを選択します。

「大きなスコープ関数」を持ってはいけないという議論があるので、命名に問題はないはずです-「小さなスコープ関数」変数の命名規則を使用してください。

プライベートインスタンスフィールドのMSFTおよびその他のスタイルガイドからのガイダンスは、 _memberName (" _" で始まるキャメルケース表記)です。これは、最近の多くのMicrosoftチュートリアルのソースコードで使用されている規則でもあります。

ハンガリー語ではなく短いため、R#はプライベートインスタンスフィールドのデフォルトルールとしてサポートしています。

また、パブリックメンバーに最初にアクセスする必要があるため、Intellisenseのプライベートフィールドを隠してしまうため、気に入っています。プロパティNameにアクセスして" Na "と入力し始めると、最初の提案は、パスカルケースのパブリックインスタンスプロパティNameです。プライベートフィールドに直接アクセスしたいというまれなケースでは、" _ "と入力することを意識的に決定する必要があります。その後、Intellisenseでプライベートフィールドの完全なリストを取得します。現れる。

MemberNameという名前のパブリックプロパティのバッキングフィールドである場合、_MemberNameである必要があるというガイダンスも見ました(" _ "で始まるパスカルケース表記)大文字のMは冗長であり、不要なキーストロークを追加し、追加情報を追加しないためだと思います。

実際には、言語のスタイルガイドラインが示唆するものがあればそれがすべてです。

使用に関する意味を伝えるものであれば、何でも構いません。

シンプルにすることを好む、私は使用する:

 m_varname - Class member variables
 g_varname - Global variables

クラスメンバーに使用するのと同じ規則を使用します。 IDEが宣言の検索を処理する必要があります。関数が非常に大きく、それが問題になると混乱する場合は、アドレスが必要なグレターの問題があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top