7

1) 変数を宣言するためのポリシーは何ですか? 常にキーワードを使用する必要がありますprivateか、それともスキップしても問題ありませんか?

string MyVar1;

対。

private string MyVar1;

私が見る唯一の理由は、Microsoft がいつの日かデフォルトのアクセス修飾子をpublicではなく に変更できるということですprivate

private はオプションであるとどこに書いてありますか? MSDNへの参照はありますか?

2) 定数の命名ポリシー?

定数を書くときはいつも大文字を使っていたのですが、Microsoft の命名ポリシーに反していると友人に言われましたね。

const string MYVAR1;

const string myVar1;

3) パスカルかキャメルか?

個人的には、キャメルは醜いだけだと思います。

4

15 に答える 15

22

1)privateキーワードはオプションです。Microsoft がフィールドのデフォルトの可視性を変更するとは思えません。これは大規模で破壊的な変更になるためです (愚かなことは言うまでもありません)。キーワードの省略は、private単に個人的な好みの問題です。

2) 「大げさな」定数を使用しないでください - フレームワークの規則に従い、パスカル ケーシングを使用します (たとえばThisIsAConstant、THIS_IS_A_CONSTANT よりも望ましい)。

于 2009-08-05T14:05:47.490 に答える
13

クラス ライブラリ開発者向けの Microsoft のデザイン ガイドラインに興味があるかもしれません。

于 2009-08-05T14:10:21.883 に答える
5

質問に直接答えるわけではありませんが、Microsoft のStyleCopに興味があるかもしれません。これは、スタイルと一貫性のルールに関してソース コードを分析するためのツールです。デフォルトでは、Microsoft のスタイル ガイドラインが適用されます。

于 2009-08-05T14:27:55.993 に答える
2

MS ガイドラインに従って const に名前を付けるための公式の推奨事項は、まだ誰も実際に完全に指定していないためです。

  • System.Math.PI、System.Math.Eなど、1 文字または 2 文字の名前にはすべて大文字を使用します。
  • 3 文字以上の場合は、 PascalCasing を使用します。
于 2010-09-17T15:57:04.077 に答える
1

privateはオプションなので、スキップできます。

ただし、クラスにプライベート、保護、およびパブリックのデータメンバーが混在している場合は、読みやすくするために、メンバーをプライベートに指定することをお勧めします。

于 2009-08-05T14:17:42.857 に答える
1

個人的には、定数が他の言語のように ALL_CAPS であるといいのですが...定数をすばやく簡単に見つける方法だと思います。それにもかかわらず、他の定数はフレームワーク UsePascalCasing に組み込まれているため、同様に使用する必要があります。一貫性は非常に重要です。

「パスカル対キャメル」に関しては、同じ問題に遭遇します。自分でゼロからプログラミングするだけなら、やりたいことは何でもできます。ただし、既存のフレームワークを使用しているため、一貫性を保つために、同じスタイルをエミュレートする必要があります。さらに、一度慣れると、同じ一連のルールに従うことが実際に役立つことに気付くでしょう。なぜなら、何かがパラメーターまたはローカル変数 (camelCasing) とプロパティまたは定数 (PascalCasing) であることがすぐにわかるからです。 .

于 2009-08-05T14:31:21.747 に答える
1

private はオプションですが、余分な入力があります。私はそれをスキップするのが好きです。

定数に関しては、好みや誰と一緒に仕事をしているかによって異なります。しかし、疑問がある場合は、.NET Framework と、それらが定数にどのように名前を付けるかを調べてください。

于 2009-08-05T14:08:59.870 に答える
1

また、プライベート フィールド名はキャメル ケースにする必要があり、オプションで接頭辞 _ または m_ を付けます。

    プライベート int カウント。
また
    プライベート文字列 _name;
また
    プライベート 10 進数 m_price;
于 2009-08-05T14:09:38.000 に答える
1

Microsoft が C# メンバー変数の既定の動作を変更することはないと思います。私は、あなたがプライベートにしたいことをプライベートに宣言し、明確にするために、パブリックにしたいことを明示的に宣言します。

定数の重要なルールは、誰もが同意し、定数として認識できる命名規則を使用することだと思います。誰もがすべて大文字が好きなら、それを使用してください。より標準的なものにしたい場合は、Pascal ケーシングを使用してください。

于 2009-08-05T14:09:52.443 に答える
1

フィールド名には Pascal 大文字小文字を使用してください。

.NET Framework 開発者ガイドから型メンバーの名前

複数の単語で構成されるすべてのパブリック メンバー、型、および名前空間の名前には、Pascal の大文字と小文字を使用してください。

このルールはインスタンス フィールドには適用されないことに注意してください。メンバー デザイン ガイドラインに詳述されている理由により、パブリック インスタンス フィールドは使用しないでください。

.NET Framework 開発者ガイドの大文字と小文字の規則から

定数の名前付けにおける Pascal ケーシングの暗黙の標準に注意してください。

変更されない定数には定数フィールドを使用してください。

コンパイラは、const フィールドの値を呼び出し元のコードに直接焼き付けます。したがって、互換性を損なうリスクなしに const 値を変更することはできません。

public struct Int32 {
  public const int MaxValue = 0x7fffffff;
  public const int MinValue = unchecked((int)0x80000000);
}

Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, Second Edition page 161 から

プライベートフィールドをプライベートという用語で装飾する必要があるかどうかについての言及は見つかりません。それは、私が想定する内部スタイルの選択です。どちらを選んでも、一貫性を保ちたいと思うでしょう。

于 2009-08-05T14:56:10.207 に答える
0

C# では、可視性はデフォルトで可能な限り制限された可視性に設定されます。修飾子なし:

  • 非内部クラスは内部です
  • 内部クラスはプライベートです
  • クラス メンバーは非公開です

いずれにせよ可視性をできるだけ制限するのは良い考えなので、私は常に、デフォルトの可視性だけが必要な修飾子をオフにするようにしています。これにより、デフォルトではないメンバーがより明確になり、本当に表示する必要があるかどうかに注意を払うことができます。

定数については、 ClassName.ConstantName 形式でそれらが何であるかが明確になるように、それらを独自のクラスに配置することをお勧めします。

一般的に、私は Microsoft のDesign Guidelines for Developing Class Librariesに従います。

于 2009-12-03T23:06:16.877 に答える
0

Brad Abrams が彼のブログで明らかにしたように、Microsoft 独自の .NET Frameworkの内部コーディング ガイドラインにも興味があるかもしれません。

内部メンバーと外部メンバーの両方について、すべての .NET Framework 設計ガイドラインに従ってください。これらのハイライトは次のとおりです。

  • ハンガリー語表記を使用しない
  • メンバー変数 ( 、 m、 s_ など) にプレフィックスを使用しないでください。区別したいなら
  • ローカル変数とメンバー変数の間では、「this」を使用する必要があります。C# と「私」で。VB.NET で。
  • メンバー変数には camelCasing を使用してください
  • パラメータにはキャメルケースを使用してください
  • ローカル変数にはキャメルケースを使用してください
  • 関数、プロパティ、イベント、およびクラスの名前には PascalCasing を使用してください
  • インターフェイス名の前に「I」を付ける
  • 列挙型、クラス、またはデリゲートの前に文字を付けないでください
于 2009-08-05T15:13:21.740 に答える
0

これは、C# と VB .net のコーディング ガイドラインが記載された無料の電子ブックです。非常に優れています。

電子ブックのダウンロードへのリンク

個人的には、読みやすくするために、何かがプライベートであることを明示的に指定するのが好きです。定数については、PascalCasing を使用します。

于 2009-08-05T14:20:34.443 に答える
0

1)私は明示的にプライベートを使用する傾向がありますが、実際にはそうする必要はないと思います

2) 確かに、Microsoft は定数に大文字を使用しないことを推奨しています。

型メンバーの Microsoft の命名規則 gyuidelines は、ここにあります。

于 2009-08-05T14:10:04.237 に答える
0

@Dan Diplo # メンバー変数 (, m, s_ など) にプレフィックスを使用しないでください。# ローカル変数とメンバー変数を区別したい場合は、「this」を使用する必要があります。C# と「私」で。VB.NET で。

それは非常に議論の余地があります。接頭辞はインテリセンスに役立ちます: 接頭辞 char を置き、ローカルのプライベート インスタンス フィールドのみのリストを取得します。これとともに。メソッド、フィールド、プロパティ、イベントなどで構成される完全なリストが表示されます。

次の例も考慮してください。

private int _count; 
private int total; 
private decimal price; 

public MyClass(int count, int total, decimal price) 
{ 
    _count = count;     // correct 
    this.total = total; // correct 
    price = price;      // wrong! you forgot this. qualifier 
} 
于 2009-08-05T16:57:28.777 に答える