職場の開発者が最近、列挙型が通常収まる場所で列挙型の代わりにクラス パターンを使用し始めました。代わりに、彼は以下のようなものを使用します。
internal class Suit
{
public static readonly Suit Hearts = new Suit();
public static readonly Suit Diamonds = new Suit();
public static readonly Suit Spades = new Suit();
public static readonly Suit Clubs = new Suit();
public static readonly Suit Joker = new Suit();
private static Suit()
{
}
public static bool IsMatch(Suit lhs, Suit rhs)
{
return lhs.Equals(rhs) || (lhs.Equals(Joker) || rhs.Equals(Joker));
}
}
彼の推論は、目に見えない列挙のように見えますが、列挙自体に含まれる列挙に関連するメソッド (上記の IsMatch など) を含めることができるというものです。
彼はこれを Enumeration クラスと呼んでいましたが、これまでに見たことのないものです。長所と短所は何か、さらに詳しい情報はどこにあるのだろうかと思いました。
ありがとう
編集: 彼が説明したもう 1 つの利点は、列挙に特定の ToString() 実装を追加できることでした。