型のメンバーの名前Names of Type Members

型は次のメンバーで構成されています: メソッド、プロパティ、イベント、コンストラクター、フィールド。Types are made of members: methods, properties, events, constructors, and fields. 次のセクションは、型のメンバーに名前を付けるためのガイドラインを示しています。The following sections describe guidelines for naming type members.

メソッドの名前Names of Methods

メソッドはアクションを実行する手段であるため、デザインのガイドラインでは、メソッド名を動詞または動詞句にする必要があります。Because methods are the means of taking action, the design guidelines require that method names be verbs or verb phrases. また、このガイドラインに従うと、名詞句または形容詞句であるプロパティ名および型名と、メソッド名を区別するためにも機能します。Following this guideline also serves to distinguish method names from property and type names, which are noun or adjective phrases.

✓ DO 動詞または動詞句は、メソッドの名前を指定します。✓ DO give methods names that are verbs or verb phrases.

public class String {  
    public int CompareTo(...);  
    public string[] Split(...);  
    public string Trim();  
}  

プロパティの名前Names of Properties

他のメンバーとは異なり、プロパティには名詞句または形容詞の名前を指定する必要があります。Unlike other members, properties should be given noun phrase or adjective names. つまり、プロパティはデータを参照するため、プロパティの名前にはデータが反映されます。That is because a property refers to data, and the name of the property reflects that. プロパティ名には、常に Pascal 形式が使用されます。PascalCasing is always used for property names.

✓ DO 名詞、名詞句、または形容詞を使用してプロパティの名前を付けます。✓ DO name properties using a noun, noun phrase, or adjective.

X DO NOT 次の例のように、"Get"メソッドの名前に一致するプロパティがあります。X DO NOT have properties that match the name of "Get" methods as in the following example:

public string TextWriter { get {...} set {...} }
public string GetTextWriter(int value) { ... }

通常、このパターンは、プロパティが実際にメソッドであることを示します。This pattern typically indicates that the property should really be a method.

✓ DO 後に"List"または"Collection"単数形の語句を使用する代わりに、コレクション内の項目を記述する複数形の語句でコレクションのプロパティの名前を付けます✓ DO name collection properties with a plural phrase describing the items in the collection instead of using a singular phrase followed by "List" or "Collection."

✓ DO 肯定の語句でブール型プロパティの名前 (CanSeekの代わりにCantSeek)。✓ DO name Boolean properties with an affirmative phrase (CanSeek instead of CantSeek). 必要に応じて、ブールプロパティの先頭に "Is"、 "Can"、または "Has"を追加することもできますが、値を追加する場合に限定します。Optionally, you can also prefix Boolean properties with "Is," "Can," or "Has," but only where it adds value.

✓ CONSIDER プロパティの型と同じ名前を提供します。✓ CONSIDER giving a property the same name as its type.

たとえば、次のプロパティは、Color という名前の列挙値を適切に取得および設定するため、プロパティは Color という名前になります。For example, the following property correctly gets and sets an enum value named Color, so the property is named Color:

public enum Color {...}  
public class Control {  
    public Color Color { get {...} set {...} }  
}  

イベントの名前Names of Events

イベントは常に、発生中のアクションまたは発生したアクションのいずれかのアクションを参照します。Events always refer to some action, either one that is happening or one that has occurred. そのため、メソッドと同様、イベントには動詞の名前が付けられ、イベントが発生した時刻を示すために動詞の時制が使用されます。Therefore, as with methods, events are named with verbs, and verb tense is used to indicate the time when the event is raised.

✓ DO 動詞または動詞句を持つイベントの名前を付けます。✓ DO name events with a verb or a verb phrase.

例として、ClickedPaintingDroppedDown などがあります。Examples include Clicked, Painting, DroppedDown, and so on.

✓ DO 現在および過去時制を使用して、前後の概念でイベント名を提供します。✓ DO give events names with a concept of before and after, using the present and past tenses.

たとえば、ウィンドウを閉じる前に発生するクローズ イベントは Closing と呼ばれ、ウィンドウを閉じた後に発生するクローズ イベントは Closed と呼ばれます。For example, a close event that is raised before a window is closed would be called Closing, and one that is raised after the window is closed would be called Closed.

X DO NOT プレイベントとポストイベントを示す "Before" または "After"を接頭や接尾に使用しないでください。 前述の通り、現在と過去の時制を使用します。X DO NOT use "Before" or "After" prefixes or postfixes to indicate pre- and post-events. 前述のように、現在形と過去形を使用します。Use present and past tenses as just described.

✓ DO 次の例に示すように"EventHandler"サフィックスを持つイベント ハンドラー (デリゲートがイベントの種類として使用) の名前をつけます。✓ DO name event handlers (delegates used as types of events) with the "EventHandler" suffix, as shown in the following example:

public delegate void ClickedEventHandler(object sender, ClickedEventArgs e);

✓ DO イベント ハンドラーにおいてはsendereという 2 つのパラメーターを使用します。✓ DO use two parameters named sender and e in event handlers.

sender パラメーターは、イベントを発生させたオブジェクトを表します。The sender parameter represents the object that raised the event. より具体的な型を使用できる場合も、通常、sender パラメーターの型は object になります。The sender parameter is typically of type object, even if it is possible to employ a more specific type.

✓ DO イベント引数クラス"EventArgs"サフィックスを持つ名前を付けます。✓ DO name event argument classes with the "EventArgs" suffix.

フィールドの名前Names of Fields

フィールドの名前付けのガイドラインは、静的パブリック フィールドと保護されたフィールドを対象とします。The field-naming guidelines apply to static public and protected fields. 内部フィールドとプライベート フィールドは、ガイドラインの対象ではありません。また、パブリック インスタンス フィールドや保護されたインスタンス フィールドは、「メンバーのデザインのガイドライン」で許可されていません。Internal and private fields are not covered by guidelines, and public or protected instance fields are not allowed by the member design guidelines.

✓ DO フィールドの名前に PascalCasing を使用します。✓ DO use PascalCasing in field names.

✓ DO 名詞、名詞句、または形容詞を使用してフィールドの名前を付けます。✓ DO name fields using a noun, noun phrase, or adjective.

X DO NOT フィールド名に接頭語を使用しないでください。X DO NOT use a prefix for field names.

たとえば、静的フィールドを示すために、"g_" や "s_" を使用しないでください。For example, do not use "g_" or "s_" to indicate static fields.

Portions © 2005, 2009 Microsoft Corporation.All rights reserved.Portions © 2005, 2009 Microsoft Corporation. All rights reserved.

2008 年 10 月 22 日に Microsoft Windows Development シリーズの一部として、Addison-Wesley Professional によって発行された、Krzysztof Cwalina および Brad Abrams による「Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition」 (フレームワーク デザイン ガイドライン: 再利用可能な .NET ライブラリの規則、用法、パターン、第 2 版) から Pearson Education, Inc. の許可を得て再印刷されています。Reprinted by permission of Pearson Education, Inc. from Framework Design Guidelines: Conventions, Idioms, and Patterns for Reusable .NET Libraries, 2nd Edition by Krzysztof Cwalina and Brad Abrams, published Oct 22, 2008 by Addison-Wesley Professional as part of the Microsoft Windows Development Series.

関連項目See Also

フレームワーク デザインのガイドラインFramework Design Guidelines
名前付けのガイドラインNaming Guidelines