












1. 枚举类型定义了名称对应值的集合;
2. 使用枚举类型的两个原因:a.编程更容易读写和维护 b.强类型,安全;
3. 枚举类型使用关键字enum,实际上从System.Enum -> System.ValueType继承;
4. 枚举类型不能像值类型那样定义methods,properties,events。但是现在可以通过“扩展方法”给枚举类型添加方法;
5. 枚举类型中使用的象征名称必须是常量,要注意可能会招致版本问题需要重新编译;
6. static System.Enum.GetUnderlyingType(Type enumType)和instance System.Type.GetEnumUnderlyingType()可以获得枚举类型中的值的类型;
7. 枚举类型的ToString返回枚举象征名称,如果使用X返回十六进制值,总是大写。长度:byte/sbyte=2位,short/ushort=4位,int/uint=8位,long/ulong=16位,前导0补齐;
8. 可以在枚举类型中定义多个不同的象征名称对应同一个值;
9. static System.Enum.GetValues和instance System.Type.GetEnumValues可以获得枚举类型的所有值;
10. static System.Enum.GetNames和instance System.Type.GetEnumNames可以获得枚举类型的所有象征名称;
11. System.Enum.Parse和TryParse可以翻译一个名称或值字符串到对应的枚举值;
12. static System.Enum.IsDefined和instance System.Type.IsEnumDefined可以用来检验枚举参数;
13. System.Enum.IsDefined虽然用起来方便,但要注意:a. 大小写敏感的 b.使用了反射所以比较慢;
14. 枚举类型尽量定义在使用它的类的同一级。
1. 枚举类型使用FlagsAttribute,表示枚举的值是按位表示的,需要显示的给每个枚举象征名称设置一个值;
2. 枚举类型如果使用了Flag,枚举变量的ToString是这样工作的
3. 不要在使用Flag的枚举类型实例上使用IsDefined方法:
1. 就是使用扩展方法。
本章讲了枚举类型已经按位表示(Flags)的枚举类型。解释了枚举类型的工作原理,着重讲了枚举类型的几个方法以及给枚举类型使用Flags时需要注意的事项,最后讲了如果通过使用扩展方法来给枚举类型增加方法。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。