EditorConfig での .NET の名前付け規則.NET naming conventions for EditorConfig

名前付け規則は、クラス、プロパティ、およびメソッドなどのコード要素の名前付けに関するものです。Naming conventions concern the naming of code elements such as classes, properties, and methods. たとえば、パブリック メンバーは大文字表記とする必要があること、または非同期メソッドは "Async" で終わる必要があることを指定できます。For example, you can specify that public members must be capitalized, or that asynchronous methods must end in "Async". これらの規則を適用するには、.editorconfig ファイルにそれらを含めます。You can enforce these rules by specifying them in an .editorconfig file. 名前付け規則違反は、規則に対して選択した重大度に応じて、エラー一覧内に表示されるか、または名前の下に修正候補として表示されます。Naming rule violations appear either in the Error List or as a suggestion under the name, depending on the severity you choose for your rule. 違反を確認するためにプロジェクトをビルドする必要はありません。There is no need to build the project in order to see violations.

名前付け規則は、.editorconfig ファイル内に固有度の高いものから低いものの順に並べる必要があります。Naming conventions should be ordered from most-specific to least-specific in the .editorconfig file. 適用可能な最初に検出されたルールのみが適用されます。The first rule encountered that can be applied is the only rule that is applied.

それぞれの名前付け規則については、名前付け規則を適用するシンボル、名前付けのスタイル、および規則を適用する上での重大度を、以下に示すプロパティを使用して指定する必要があります。For each naming convention, you must specify the symbols it applies to, a naming style, and a severity for enforcing the convention, using the properties described below. プロパティの順序は重要ではありません。The order of the properties is not important.

まずは、名前付け規則を完全に記述するために必要なプロパティの各々で使用する名前付け規則のタイトルを選択します。To begin, choose a title for your naming rule that you will use in each of the properties that are needed to fully describe the rule. たとえば、public_members_must_be_capitalized は、名前付け規則の名前としてわかりやすく適切です。For example, public_members_must_be_capitalized is a good, descriptive name for a naming rule. 以下のセクションでは、指定するタイトルを <namingRuleTitle> として参照します。We'll refer to the title you choose as <namingRuleTitle> in the sections that follow.


最初に、名前付けルールを適用するシンボルのグループを識別します。First, identify a group of symbols to apply the naming rule to. このプロパティの形式は次のとおりです。This property has the following format:

dotnet_naming_rule.<namingRuleTitle>.symbols = <symbolTitle>

<symbolTitle> の値を、public_symbols などのわかりやすいタイトルに置き換えて、シンボルのグループに名前を付けます。Give a name to the group of symbols by replacing the <symbolTitle> value with a descriptive title, for example public_symbols. 規則が適用されるシンボルを記述する 3 つのプロパティ名 (シンボルの種類、アクセシビリティ レベル、修飾子) の中で <symbolTitle> を使用します。You'll use the <symbolTitle> value in the three property names that describe which symbols the rule is applied to (kinds of symbol, accessibility levels, and modifiers).

シンボルの種類Kinds of symbols

名前付け規則を適用するシンボルの種類を記述するには、次の形式でプロパティを指定します。To describe the kind of symbols to apply the naming rule to, specify a property in the following format:

dotnet_naming_symbols.<symbolTitle>.applicable_kinds = <values>

許容される値を次のリストに示します。個々の値をコンマで区切ることで複数の値を指定できます。The following list shows the allowable values, and you can specify multiple values by separating them with a comma.

  • *(この値を使用すると、すべてのシンボルが指定されます)* (use this value to specify all symbols)
  • namespacenamespace
  • classclass
  • structstruct
  • interfaceinterface
  • enumenum
  • propertyproperty
  • メソッドmethod
  • フィールドfield
  • eventevent
  • delegatedelegate
  • パラメーターparameter
  • type_parametertype_parameter
  • locallocal
  • local_functionlocal_function

シンボルのアクセシビリティ レベルAccessibility levels of symbols

名前付け規則を適用するシンボルのアクセシビリティ レベルを記述するには、次の形式でプロパティ名を指定します。To describe the accessibility levels of the symbols you want the naming rule to apply to, specify a property name in the following format:

dotnet_naming_symbols.<symbolTitle>.applicable_accessibilities = <values>

許容される値を次のリストに示します。個々の値をコンマで区切ることで複数の値を指定できます。The following list shows the allowable values, and you can specify multiple values by separating them with a comma.

  • *(この値を使用すると、すべてのアクセシビリティ レベルが指定されます)* (use this value to specify all accessibility levels)
  • publicpublic
  • internal または friendinternal or friend
  • privateprivate
  • protectedprotected
  • protected_internal または protected_friendprotected_internal or protected_friend
  • locallocal


対象とするシンボルの種類にアクセシビリティが適用されない場合は、アクセシビリティ レベルを名前付け規則の一部には指定しません。Do not specify an accessibility level as part of your naming convention if accessibility is not applicable to the kind of symbol you are targeting. たとえば、パラメーターにはアクセシビリティ レベルはありません。For example, parameters do not have accessibility levels. パラメーターの名前付け規則にアクセシビリティ レベルを指定すると、名前付け規則は正しく機能しません。If you specify an accessibility level for a parameter naming convention, your naming rule will not function correctly.

シンボルの修飾子Symbol modifiers

名前付け規則を適用するシンボルの修飾子を記述するには、次の形式でプロパティ名を指定します。To describe the modifiers of the symbols you want the naming rule to apply to, specify a property name in the following format:

dotnet_naming_symbols.<symbolTitle>.required_modifiers = <values>

許容される値を次のリストに示します。個々の値をコンマで区切ることで複数の値を指定できます。The following list shows the allowable values, and you can specify multiple values by separating them with a comma. 名前付け規則は、required_modifiers で指定されたすべての修飾子が含まれている署名とのみ一致します。A naming rule will only match signatures that have all the modifiers specified in required_modifiers. このプロパティを省略した場合は、既定値である空のリストが使用されます。すなわち、一致のために特定の修飾子は必要ありません。If you omit this property, the default value of an empty list is used, that is, no specific modifiers are required for a match. このことは、この規則が適用されるかどうかに、シンボルの修飾子が影響を及ぼさないことを意味します。This means a symbol's modifiers have no effect on whether or not this rule is applied.

  • abstract または must_inheritabstract or must_inherit

  • async

  • const

  • readonly

  • static または sharedstatic or shared


    static または shared シンボルに対する名前付け規則がある場合、それは暗黙的に静的である const シンボルにも適用されます。If you have a naming rule for static or shared symbols, it is also applied to const symbols because they are implicitly static. static 名前付け規則を const シンボルに適用しない場合は、const シンボルに対する別の名前付け規則を作成します。If you don't want the static naming rule to apply to const symbols, create a separate naming rule for const symbols.

required_modifiers は省略可能なプロパティです。required_modifiers is an optional property. このプロパティを省略した場合、名前付け規則はすべての修飾子に適用されます。If you omit this property, your naming rule will apply to all modifiers.


名前付け規則を適用するシンボルのグループを識別したので、次に名前付けのスタイルを記述する必要があります。Now that we've identified the group of symbols to apply the naming rule to, we must describe the naming style. 名前が特定のプレフィックスまたは特定のサフィックスを持つスタイルを指定したり、名前に含まれている個々の単語が特定の文字で区切られるスタイルにしたりすることができます。A style can be that the name has a certain prefix or a certain suffix, or that individual words in the name are separated with a certain character. また、大文字/小文字のスタイルを指定することもできます。You can also specify a capitalization style. スタイル プロパティの形式は次のようになります。The style property has the following format:

dotnet_naming_rule.<namingRuleTitle>.style = <styleTitle>

<styleTitle> の値を、first_word_upper_case_style のようにわかりやすいタイトルに置き換えることで、スタイルに名前を付けます。Give the style a name by replacing the <styleTitle> value with a descriptive title, for example first_word_upper_case_style. 名前付けのスタイル (プレフィックス、サフィックス、単語区切り文字、大文字/小文字) を記述するプロパティ名の中で <styleTitle> を使用します。You'll use the <styleTitle> value in the property names that describe the naming style (prefix, suffix, word separator character, and capitalization). これらのプロパティを 1 つまたは複数使用して、目的のスタイルを記述します。Use one or more of these properties to describe your style.

プレフィックスが必要Require a prefix

シンボル名が特定の文字で始まる必要があることを指定するには、次のプロパティを使用します。To specify that symbol names must begin with certain characters, use this property:

dotnet_naming_style.<styleTitle>.required_prefix = <prefix>

サフィックスが必要Require a suffix

シンボル名が特定の文字で終わる必要があることを指定するには、次のプロパティを使用します。To specify that symbol names must end with certain characters, use this property:

dotnet_naming_style.<styleTitle>.required_suffix = <suffix>

特定の単語区切り記号が必要Require a certain word separator

シンボル名の中の個々の単語を特定の文字で区切る必要があることを指定するには、次のプロパティを使用します。To specify that individual words in symbol names must be separated with a certain character, use this property:

dotnet_naming_style.<styleTitle>.word_separator = <separator character>

大文字/小文字のスタイルが必要Require a capitalization style

シンボル名に対して特定の大文字/小文字のスタイルを指定するには、次のプロパティを使用します。To specify a particular capitalization style for symbol names, use this property:

dotnet_naming_style.<styleTitle>.capitalization = <value>

このプロパティに設定できる値は次のとおりです。The allowable values for this property are:

  • pascal_casepascal_case
  • camel_casecamel_case
  • first_word_upperfirst_word_upper
  • all_upperall_upper
  • all_lowerall_lower


名前付けスタイルの一部として大文字/小文字スタイルを指定する必要があります。そうしないと、名前付けスタイルは無視される可能性があります。You must specify a capitalization style as part of your naming style, otherwise your naming style might be ignored.


名前付け規則違反の重大度を記述するには、次の形式でプロパティを指定します。To describe the severity of a violation of your naming rule, specify a property in the following format:

dotnet_naming_rule.<namingRuleTitle>.severity = <value>

次の表に、許容される重大度の値と、その意味を示します。The following table shows the allowable severity values, and what they mean:

重要度Severity 効果Effect
none または silentnone or silent このスタイルに準拠していないときは、ユーザーには何も表示されません。ただし、自動生成コードは、このスタイルに従います。When this style is not being followed, do not show anything to the user; however, auto-generated code follows this style.
修正候補suggestion このスタイルに準拠していないとき、修正候補としてユーザーに表示されます (最初の 2 文字の下に点線が付きます)。When this style is not being followed, show it to the user as a suggestion, as underlying dots on the first two characters. コンパイル時には影響しません。It has no effect at compile time.
警告warning このスタイルに準拠していないとき、エラー一覧にコンパイラの警告が表示されます。When this style is not being followed, show a compiler warning in the Error List.
エラーerror このスタイルに準拠していないとき、エラー一覧にコンパイラ エラーが表示されます。When this style is not being followed, show a compiler error in the Error List.


名前付け規則違反を確認するために、プロジェクトをビルドする必要はありません。You do not have to build your project in order to see naming rule violations. 名前付け規則違反は、コードの編集時に、エラー一覧に表示されるか、または修正候補として表示されます。They appear as code is edited, either in the Error List or as a suggestion.


次の .editorconfig ファイルには、パブリック プロパティ、メソッド、フィールド、イベント、デリゲートを大文字で入力する必要があることを指定した名前付け規則が含まれています。The following .editorconfig file contains a naming convention that specifies that public properties, methods, fields, events, and delegates must be capitalized. この名前付け規則では、コンマを使用して個々のシンボル値を区切ることにより、規則を適用する複数の種類のシンボルを指定しています。Notice that this naming convention specifies multiple kinds of symbol to apply the rule to, using a comma to separate the values.

# Public members must be capitalized (public_members_must_be_capitalized)
dotnet_naming_rule.public_members_must_be_capitalized.symbols   = public_symbols
dotnet_naming_symbols.public_symbols.applicable_kinds           = property,method,field,event,delegate
dotnet_naming_symbols.public_symbols.applicable_accessibilities = public
dotnet_naming_symbols.public_symbols.required_modifiers         = readonly

dotnet_naming_rule.public_members_must_be_capitalized.style    = first_word_upper_case_style
dotnet_naming_style.first_word_upper_case_style.capitalization = first_word_upper

dotnet_naming_rule.public_members_must_be_capitalized.severity = suggestion

次のスクリーンショットでは、この名前付け規則の結果がエディターに表示されています。The following screenshot shows the effect of this naming convention in the editor. 2 つのパブリック変数に付けられた名前は、最初の文字が大文字になっていません。Two public variables have been named without capitalization of the first letter. 1 つは const、もう 1 つは readonly です。One is a const, and one is readonly. 名前付け規則は readonly シンボルのみに適用されるので、readonly 変数のみに、名前付け規則の修正候補が表示されています。Since the naming rule only applies to readonly symbols, only the readonly variable shows a naming rule suggestion.


これで、違反の重大度を warning に変更してみましょう。Now let's change the violation severity to warning:

dotnet_naming_rule.public_members_must_be_capitalized.severity = warning

コード ファイルを閉じてから再度開いた場合、名前違反の下には修正候補が表示されるのではなく、緑色の波線が表示され、さらにエラー一覧に警告が表示されます。If you close and reopen your code file, instead of seeing the suggestion under the name violation, you see a green squiggly, and a warning in the Error List:


関連項目See also