C#的枚举Enum注意的问题
2011-07-22 10:10
232 查看
前段时间,由于在项目中不小心把同一个枚举中的两个不同项写成了同一个值,项目编译正常。如下:
第一点:
(2)、项的值在枚举中不一定唯一。
(2)、如果没指定项的值,后面项的值“总是”(不因任何原因,如已经存在值)等于前面项的值加1。
(3)、枚举的项不一定是从前到后按小到大排序的。
第二点:
(2)、当值转换成枚举时,从前到后搜索。
写得不好多见谅,欢迎指正及指教。
enum MyEnum { A = 1, B = 1 }好奇之下写了代码进行验证:
enum MyEnum { A, B = 2, C, D = 2, E, F = 1, G }竟然发现:
第一点:
int a = (int)MyEnum.A; // a = 0 int c = (int)MyEnum.C; // c = 3 int e = (int)MyEnum.E; // e = 3 int g = (int)MyEnum.G; // g = 2(1)、如果第一项没指定值,默认为0。
(2)、项的值在枚举中不一定唯一。
(2)、如果没指定项的值,后面项的值“总是”(不因任何原因,如已经存在值)等于前面项的值加1。
(3)、枚举的项不一定是从前到后按小到大排序的。
第二点:
bool result1 = (MyEnum.C == MyEnum.E); // true bool result2 = (MyEnum.B == MyEnum.G); // true MyEnum myE = (MyEnum)2; // MyEnum.B(1)、枚举是值类型,在运算时都是用“值”来做运算的。
(2)、当值转换成枚举时,从前到后搜索。
写得不好多见谅,欢迎指正及指教。
相关文章推荐
- C#的枚举Enum注意的问题
- C#的枚举Enum注意的问题
- C#的枚举Enum注意的问题
- C#关于使用枚举遇到的问题----Parse()方法使用注意
- C#的Enum——枚举
- C#中的枚举(Enum)你知道多少呢?
- 2017/11/29 C#开发的几个问题/注意事项
- C# 调用 C++ dll 函数 时传递字符串 需要注意的问题
- C#判断参数是否在枚举Enum中
- C# Enum枚举转 Dictionary字典
- C# Enum枚举转 Dictionary字典
- C#中C/C++程序员注意问题
- 利用枚举enum解决多if.....else if ..问题
- C#枚举enum定义使用
- C# Enum GetValues 将枚举转为Array
- C#调用C++版本dll时的类型转换需要注意的问题小结
- C#中ref和out参数使用时需要注意的问题
- C# Enum,Int,String的互相转换 枚举转换
- C#关于使用枚举遇到的问题----Type运算符使用的必要性
- [C#开发手记] C# 调用C++ dll 注意的问题