2011-11-01 22 views
15

ガイドラインは、列挙型の明確である...C#の定数クラスの命名規則:複数形か単数形か?

は、その値はビットフィールドでない限り、列挙のための単数形の名前を使用しています。

(出典:http://msdn.microsoft.com/en-us/library/ms229040.aspx

...しかし、その定数のクラスのための明確な(または読み取り専用の静的フィールド/ propertes)ではありません。たとえば、このクラスの名前を単数形か複数形にする必要がありますか?

public static class Token // or Tokens? 
{ 
    public const string Foo = "Foo"; 
    public const string Bar = "Bar"; 
    public const string Doo = "Doo"; 
    public const string Hicky = "Hicky"; 
} 
+0

拡張メソッドを保持するクラスを作成していた場合は、これを単数または複数の名前にしますか?また、特定の値やインスタンスへの参照を保持する他のメソッドも考えてください。例えば、「色」である。 –

+4

それは価値があるため、Windows自体は複数形を使用しているようです:[System.Windows.Media.Brushes](http://msdn.microsoft.com/en-us/library/system.windows.media.brushes.aspx) 、[System.Windows.Media.Colors](http://msdn.microsoft.com/en-us/library/system.windows.media.colors.aspx)を参照してください。 –

+1

@RaymondChen常にそうではありません。たとえば、 'System.Drawing.Color'は逆のアプローチをとります。 WPFクラスが名前を付けて奇妙なことをすることがあるようです。 – BrainSlugs83

答えて

22

私は複数を使用します:Tokens。これは、静的クラスが(クラスのランタイム型ではない)ソートの項目のコレクションとして機能していることを意味します。

一方、列挙型のフィールドは、列挙型のインスタンスです。たとえば、TypeCode.Stringは、 a TypeCodeです。 TypeCodes.StringTypeCodesであると言うのは変です。

しかし、あなたのTokens例では、単数形を使用すると、(それがstringある)トークンですが、それはTokenされていない、私たちにToken.Fooを与えます。 (。!Tokens.Foostring、ないTokensであるか、あなたは複数のクラス名を使用している場合、ACK)

+1

+1。私はあなたの推論が好きです。 – devuxer

+1

+1。私は同じ常識的アプローチを好む。何かを命名するとき、私は会話では発音が可能であり、使用可能であることを確認します。ある時点または別の時点で別の開発者に伝える必要がある可能性が高いからです。私たちが物事をどのように名付けているかには「基準」がありますが、例外的な状況があり、標準からの逸脱を指示することがあります。 –

1

私はリンク先の公式命名標準を持っていないが、私はどうなるのかを伝えることができます。

は、私は複数の名前を使用します。両方は、本質的に同じ方法を使用しているので

+0

私はしばしばenumの命名ガイドラインを破って複数の名前を付けることに注意してください。それは私にとってもっと自然な感じです。 –

6

トークン、および概念的に同じものです、私が列挙ガイドラインに従ってちょうどお勧めします。

+1

+1は単数です。静的なクラス(Token Foo、Barなどのコンテナ)を書くときには複数の意味がありますが、静的なクラス(Token Fooで何かを行う)を使うときは特異な意味があります。 第2のケース(トークンを使用する)が第1のケース(トークンを定義する)よりもはるかに優れているべきであるため、特異性がより適切です。 –

0

私は、複数の名前を使用します:あなたはTokenを作成することを検討するしかしTokens

をconst値を保持するクラス。

これはSystem.Windows.Media.Colorsに似ています。 Colors.BlueSystem.Windows.Media.Colorインスタンスを返します。

関連する問題