有没有办法将枚举映射到C#.NET 3.5中的另一个枚举?

Nic*_*tch 0 .net enums c#-3.0

我正在尝试设置一个枚举,将某些特定于项目的值映射到标准的System.Drawing.Color枚举.

这是我想做的事情的想法:

public enum SessionColors
{
     Highlights = Color.HotPink,
     Overlays   = Color.LightBlue,
     Redaction  = Color.Black   
}
Run Code Online (Sandbox Code Playgroud)

我的目标是拥有它,所以我可以使用SessionColors.Highlights来识别我认为是一个亮点,然而,我可以稍后更改枚举映射并影响所有后续颜色.

我意识到我可以查看Color.HotPink等的值.并且只是使用它们但它并不那么清楚.还有更好的主意吗?

Jon*_*ant 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;
}
Run Code Online (Sandbox Code Playgroud)

  • 只是为了增加这个而不是发布我的答案,你*可以*将你自己的枚举中的枚举值映射到另一个枚举中的值.正如汉斯所说,你在这里处理的不是枚举值,它是一个颜色(这是一个结构). (4认同)