サーチ…


前書き

このトピックでは、C#言語で記述する際に使用される基本的な命名規則について説明します。すべての規約と同様、コンパイラによって強制されるのではなく、開発者間の可読性を確保します。

包括的な.NETフレームワーク設計ガイドラインについては、 docs.microsoft.com/dotnet/standard/ design-guidelinesを参照してください。

備考

読みやすい識別子名を選択する

たとえば、Horizo​​ntalAlignmentというプロパティは、AlignmentHorizo​​ntalよりも英語で読みやすくなります。

簡潔性より読みやすさを優先する

プロパティ名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


Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow