我最近突然想到以下(示例)枚举......
enum Color
{
Red,
Green,
Yellow,
Blue
}
...可以用一个看似更安全的类代替:
class Color
{
private Color() { }
public static readonly Color Red = new Color();
public static readonly Color Green = new Color();
public static readonly Color Yellow = new Color();
public static readonly Color Blue = new Color();
}
对于“类型安全”,我的意思是如果是枚举,则以下语句将起作用Color
,但如果Color
是上述类则不起作用:
var nonsenseColor = (Color)17; // works if Color is an enum
两个问题:
1)这种模式是否有一个被广泛接受的名称(用类型安全的类替换枚举)?
2)在什么情况下应该使用枚举,什么时候使用一个类更合适?