我正在尝试设置一个枚举,将某些特定于项目的值映射到标准的System.Drawing.Color枚举。
以下是我想做的事情的想法:
public enum SessionColors
{
Highlights = Color.HotPink,
Overlays = Color.LightBlue,
Redaction = Color.Black
}
目标是拥有它所以我可以使用SessionColors.Highlights来识别我认为是一个突出显示的东西,然而,我可以稍后更改枚举映射并影响所有后续颜色。
我意识到我可以查看Color.HotPink等的值。并且只是使用它们但它并不那么清楚。还有更好的主意吗?
答案 0 :(得分:7)
只需使用公共常量:
public static class SessionColors
{
public static readonly Color Highlights = Color.HotPink;
public static readonly Color Overlays = Color.LightBlue;
public static readonly Color Redaction = Color.Black;
}
答案 1 :(得分:3)
Colors.HotPink不是枚举值,它是返回Color值的静态类Colors的静态属性。而Color值是一个结构,而不是一个整数。
因此,您不能将Color用作枚举的基础值,因为它仅限于整数类型。
答案 2 :(得分:2)
我个人会在静态类中使用Color属性而不是Enumerations。这有很多优点,但最有可能的是,这可能允许您在运行时从app.config(或其他一些配置源)加载颜色,而不必强制重新编译。