C#中enum类型
最近碰到了枚举类型,就顺便整理下。
枚举的基类Enum,可以是除 Char 外的任何整型。不做显示声明的话,默认是整形(Int32)。
声明一个Enum类型:
/// <summary> /// 颜色 /// </summary> public enum People { [Description("婴儿")] Baby = 0, [Description("儿童")] Children = 5, [Description("青年")] Youth = 20, [Description("老人")] Old = 60 }
Enum转化为String类型:
(1)利用Object.ToString()方法:
People.Baby.ToString();
(2)利用Enum的静态方法GetName:
Enum.GetName(typeof(People), 0) Enum.GetName(typeof(People), People.Baby)
String类型转化为Enum:
(1)利用Enum的静态方法Parse:
(People)Enum.Parse(typeof(People), "Children")
Enum转化为整数:
(1)强制转化化
(int)People.Youth; (byte)People.Youth;//byte的数值范围,0-255,小心有些会溢出
int转化为Enum:
(People)(60)
(People)Enum.ToObject(typeof(People), 60)
获取Enum字符串数组:
foreach (var item in Enum.GetNames(typeof(People))) { Console.WriteLine(item); }
判断某个整形是否定义在Enum中:
Enum.IsDefined(typeof(People), 60);//返回true或false
结果为:
获取枚举类型头上的Description值:
class Program { static void Main(string[] args) { Console.WriteLine(GetDes(People.Youth)); Console.ReadKey(); } public static string GetDes(Enum value) { return ((DescriptionAttribute)Attribute.GetCustomAttribute(value.GetType().GetField(value.ToString()), typeof(DescriptionAttribute))).Description; } public enum People { [Description("婴儿")] Baby = 0, [Description("儿童")] Children = 5, [Description("青年")] Youth = 20, [Description("老人")] Old = 60 } }
结果:
作者:Eric Li
出处:http://www.cnblogs.com/ericli-ericli/
除转载文章外,随笔版权归作者和博客园所有,欢迎转载,转载请标明出处。
如果您觉得本篇博文对您有所收获,觉得作者还算用心,请点击右下角的 [推荐],谢谢!