列挙型の命名規則 - 複数形の質問

列挙型の命名規則 - 複数形の質問

私は似たようなことを読んだことがあるが、私が求めているものとは正確には一致していないにもかかわらず、この質問をしている。C# 列挙型と一致するプロパティの命名規則

私は列挙型に複数形の名前を付けて、それを単数形として「使用」する傾向があることに気付きました。例:

public enum EntityTypes {
  Type1, Type2
}

public class SomeClass {
  /*
    some codes
  */

  public EntityTypes EntityType {get; set;}

}

もちろん、これは機能し、私のスタイルですが、このような規則に潜在的な問題があると気付いた人はいますか? ただし、「Status」という単語を使った「醜い」名前があります。

public enum OrderStatuses {
  Pending, Fulfilled, Error, Blah, Blah
}

public class SomeClass {
  /*
    some codes
  */

  public OrderStatuses OrderStatus {get; set;}

}

追加情報: 質問が十分に明確でなかったのかもしれません。定義した列挙型の変数に名前を付けるときには、よくよく考えなければなりません。ベスト プラクティスはわかっていますが、変数に名前を付ける作業が楽になるわけではありません。

すべての列挙プロパティ (「Status」など) を「MyStatus」として公開することはできません。

質問: 上記の私の慣例に潜在的な問題があると誰かに気付かれますか?これはベストプラクティスに関するものではありません。

質問を言い換える:

さて、私は次のように質問するべきだと思います: 使用時に列挙型の「インスタンス」の命名が非常に簡単になるような、列挙型に名前を付ける良い一般的な方法を誰かが考え出すことができますか?

ベストアンサー1

Microsoftは、ビットフィールドを表すEnum場合を除き、sには単数形を使用することを推奨しています(EnumFlagsAttribute参照列挙型の命名規則(マイクロソフトの命名ガイドライン)。

あなたの説明に答えると、私は以下のいずれにも何の問題もないと思います。

public enum OrderStatus { Pending, Fulfilled, Error };

public class SomeClass { 
    public OrderStatus OrderStatus { get; set; }
}

または

public enum OrderStatus { Pending, Fulfilled, Error };

public class SomeClass {
    public OrderStatus Status { get; set; }
}

おすすめ記事