4

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

_member
m_member

または Java の場合は、this.member.

しかし、単一の変数が完全な関数スコープまたは短いライフスパン スコ​​ープを持っていることを伝える、関数変数スコープの適切な手法または命名規則はありますか?

void MyFunction()
{
  int functionScopeVariable;

  if(true)
  {
    //no need for function variable scope naming convention
  }
}
4

10 に答える 10

9

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

いいえ、実際には変数の名前付けについて話しているわけではありません。これは、やはり人間が行うのが最善です。しかし、このような命名戦略の根底にあるタスクは、1 つの名前が表す変数の型を示すことです。

価値のあるほぼすべての IDE は、さまざまなスタイル (色、フォント、フォントの種類など) をさまざまな変数の種類 (インスタンス メンバー、静的メンバー、引数、ローカル変数など) に定義できるため、IDE に何を伝えさせることができますか?実際には変数のタイプにより、毎回これらの(そうでなければ役に立たない)プレフィックスまたはサフィックスを入力する必要がなくなります。

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

于 2008-12-22T19:00:39.643 に答える
4

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

于 2008-09-30T03:03:41.517 に答える
3

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

于 2008-09-30T03:05:12.310 に答える
1

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

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

また、最初にパブリックメンバーにアクセスすることを選択する必要があるため、Intellisenseのプライベートフィールドが不明瞭になるため、これも気に入っています。プロパティNameにアクセスしたいので、「Na」と入力し始めると、最初の提案はPascalで大文字と小文字が区別されるパブリックインスタンスのプロパティNameです。プライベートフィールドに直接アクセスしたいというまれなケースでは、これにより、「_」の入力を開始することを意識的に決定する必要があります。その後、Intellisenseポップアップにプライベートフィールドの完全なリストが表示されます。

また、MemberNameという名前のパブリックプロパティのバッキングフィールドである場合は_MemberNameである必要があるというガイダンスも見ました(_大文字のMが冗長であると思うので個人的には好きではありません)。不要なキーストロークであり、追加情報は追加されません。

于 2010-07-19T15:51:30.103 に答える
1

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

于 2008-09-30T03:25:20.733 に答える
0

関数では、「ローカル」を表す l_ プレフィックスを使用する傾向があります。そして、それはかなりうまくいきました。

于 2008-09-30T03:01:55.360 に答える
0

クラス メンバーに使用するのと同じ規則を使用します。IDE は、宣言の検索を処理する必要があります。関数が問題になるほど大きくて混乱している場合は、より大きな問題に対処する必要があります。

于 2010-07-19T16:07:10.253 に答える
0

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

于 2008-09-30T03:11:08.927 に答える
0

使い方の意味が伝わるものであればなんでもいいと思います。

于 2008-09-30T03:35:58.430 に答える
0

私はそれをシンプルに保つことを好みます。

 m_varname - Class member variables
 g_varname - Global variables
于 2008-09-30T03:52:31.213 に答える