サーチ…
前書き
このトピックでは、C#言語で記述する際に使用される基本的な命名規則について説明します。すべての規約と同様、コンパイラによって強制されるのではなく、開発者間の可読性を確保します。
包括的な.NETフレームワーク設計ガイドラインについては、 docs.microsoft.com/dotnet/standard/ design-guidelinesを参照してください。
備考
読みやすい識別子名を選択する
たとえば、HorizontalAlignmentというプロパティは、AlignmentHorizontalよりも英語で読みやすくなります。
簡潔性より読みやすさを優先する
プロパティ名CanScrollHorizontally
は、 ScrollableX
(X軸へのあいまいな参照)よりも優れています。
アンダースコア、ハイフン、またはその他の英数字以外の文字は使用しないでください。
ハンガリー表記を使用しない
ハンガリー表記法は、識別子のデータ型(例えば、 string strName
)のような、パラメータに関するいくつかのメタデータを符号化するために識別子に接頭辞を含める慣行である。
また、C#ですでに使用されているキーワードと競合する識別子を使用しないでください。
略語と頭字語
一般的に、略語や略語は使用しないでください。これらはあなたの名前を読みにくくします。同様に、略語が広く認識されていると想定することがいつ安全であるかを知ることは困難です。
大文字の表記法
以下の用語は、大文字と小文字を区別する方法を説明します。
パスカルケーシング
識別子の最初の文字とその後に連結される各単語の最初の文字が大文字になります。 3つ以上の文字の識別子には、パスカルの大文字小文字を使用できます。例: BackColor
キャメルケーシング
識別子の最初の文字は小文字で、その後に連結される各単語の最初の文字は大文字になります。例: backColor
大文字
識別子のすべての文字が大文字になります。たとえば、 IO
ルール
識別子が複数の単語で構成されている場合、単語の間にアンダースコア( "_")やハイフン( " - ")などのセパレータは使用しないでください。代わりに、各単語の先頭を示すために、caseを使用します。
次の表は、識別子の大文字小文字の規則を要約し、さまざまな種類の識別子の例を示しています。
識別子 | 場合 | 例 |
---|---|---|
ローカル変数 | キャメル | carName |
クラス | パスカル | AppDomain |
列挙型 | パスカル | ErrorLevel |
列挙値 | パスカル | 致命的な誤り |
イベント | パスカル | ValueChanged |
例外クラス | パスカル | WebException |
読み取り専用静的フィールド | パスカル | RedValue |
インタフェース | パスカル | IDisposable |
方法 | パスカル | ToString |
名前空間 | パスカル | System.Drawing |
パラメータ | キャメル | 型名 |
プロパティ | パスカル | バックカラー |
詳細は、 MSDNを参照してください 。
インターフェイス
インタフェースには、名詞や名詞句、または行動を記述する形容詞で名前を付ける必要があります。たとえば、 IComponent
は説明的な名詞を使用し、 ICustomAttributeProvider
は名詞句を使用し、 IPersistable
は形容詞を使用します。
インタフェース名は文字型I
で接頭辞を付けて、型がインタフェースであることを示し、パスカルの場合を使用する必要があります。
以下は正しく名前付きのインターフェイスです:
public interface IServiceProvider
public interface IFormatable
プライベートフィールド
プライベートフィールドには、 camelCase
と_camelCaseWithLeadingUnderscore
2つの共通の規約があります。
キャメルケース
public class Rational
{
private readonly int numerator;
private readonly int denominator;
public Rational(int numerator, int denominator)
{
// "this" keyword is required to refer to the class-scope field
this.numerator = numerator;
this.denominator = denominator;
}
}
下線付きのキャメルケース
public class Rational
{
private readonly int _numerator;
private readonly int _denominator;
public Rational(int numerator, int denominator)
{
// Names are unique, so "this" keyword is not required
_numerator = numerator;
_denominator = denominator;
}
}
名前空間
名前空間の一般的な形式は次のとおりです。
<Company>.(<Product>|<Technology>)[.<Feature>][.<Subnamespace>].
例としては、
Fabrikam.Math
Litware.Security
名前空間の名前に会社名を付けると、異なる企業の名前空間の名前が同じになることはありません。
列挙型
ほとんどの列挙型に一意の名前を使用する
public enum Volume
{
Low,
Medium,
High
}
ビットフィールドである列挙型には複数の名前を使用する
[Flags]
public enum MyColors
{
Yellow = 1,
Green = 2,
Red = 4,
Blue = 8
}
注:常にFlagsAttribute
をビットフィールドのEnum型に追加してください。
接尾辞として 'enum'を追加しないでください
public enum VolumeEnum // Incorrect
各エントリにenum名を使用しないでください
public enum Color
{
ColorBlue, // Remove Color, unnecessary
ColorGreen,
}
例外
接尾辞として '例外'を追加する
カスタム例外名の末尾に "-Exception"を付ける必要があります。
以下は正しく名前が付けられた例外です:
public class MyCustomException : Exception
public class FooException : Exception