一位开发人员最近开始在通常适合枚举的地方使用类模式而不是枚举。相反,他使用了类似于下面的东西:
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),以包含在枚举本身中。
他称这是一个枚举类,但它不是我以前见过的。我想知道优点和缺点是什么,在哪里可以找到更多信息?
谢谢
编辑:他描述的另一个优点是能够为枚举添加特定的 ToString() 实现。