c#enum常量映射到唯一的整数值

时间:2012-05-09 08:47:46

标签: c# enums

在c#中是否有任何方法可以确保枚举常量映射到唯一的整数值。

public enum Color
{
None =0,
red = 1,
blue= 2,
white = 3
}

如果我确实将“白色从3改为2”的数值,我应该得到编译错误。

在我的项目中,我将DB中的枚举整数值保存为常量。 我需要枚举中的约束,就像有人在枚举中添加一个新的常量(例如黑色)。用户必须使用枚举常量提供唯一的数值。

感谢

1 个答案:

答案 0 :(得分:3)

最好的办法是不要在enum定义中明确设置值。在enum定义中添加评论,告诉任何人添加它以确保它们只添加到最后。

例如:

public enum Color
{
    None,
    red,
    blue,
    white,
    // **NEW ENTRIES MUST ONLY BE ADDED AT THE END OF THE ENUM**
}

或者使用内置的Color结构及其ToArgb( )方法。或者确实是KnownColor枚举。