4

これは一種の重複した質問ですが、実際の解決策はありませんでした。

それでは、行きましょう。私が持っているとしましょう:

public enum Color
{
    Red,
    Blue,
    Green
}

public class BlueUnicorn
{
    private const Color Color = Color.Blue;
}
  1. 「ほとんどの Enum 型には単数形の名前を使用しますが、ビット フィールドである Enum 型には複数形の名前を使用します。」Microsoft の Enumeration Type Naming Guidelines から取得しましたCheck!

  2. 「プロパティにそのタイプと同じ名前を付けることを検討してください。」Microsoft の Names of Type Members Check!から取得しました。

  3. Resharper ここに画像の説明を入力Check!によると、読み取り専用ではなく定数を使用する必要があります。

しかし、コンパイルエラーが発生します。奇妙ですが、これにはインテリセンスはありません。「BlueUnicorn.Color」の定数値の評価には循環定義が含まれます。

私はここで大会の亀裂にいるような気がします。ベスト プラクティスの命名規則に従って、フィールドにはどのような名前を付ける必要がありますか?

4

2 に答える 2

4

そのフィールドに好きなように名前を付けることができます。コンパイル エラーを解決するには、列挙型の名前空間を の前に追加するだけですColor.Blue

于 2013-04-03T13:19:41.933 に答える
2

あなたはコンベンションクラックではありません(ちなみに素晴らしい用語です!)。規則 (2) は、フィールドや定数ではなく、プロパティに適用されるため、適用されません。したがって、 のように呼ぶことができますUnicornColor

余談ですが、これはおそらく実際のコードではないことを承知しています (本当にUnicorn シミュレーター作成している場合を除きます!) が、BlueUnicorn クラスを使用するのは適切ではないように思えます。そのクラス内の特定の定数に基づいて定義されたクラスを持つことは、あまりにも具体的であるように思われます-確かにクラスColorの属性でしょうUnicornか?

これが実際のコードに当てはまるかどうかはわかりませんが、とにかく設計が少し間違っている可能性があり、疑問は生じませんか?

于 2013-04-03T13:20:25.727 に答える