zoukankan      html  css  js  c++  java
  • 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

    结果为:

    343434353

    获取枚举类型头上的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/
    除转载文章外,随笔版权归作者和博客园所有,欢迎转载,转载请标明出处。
    如果您觉得本篇博文对您有所收获,觉得作者还算用心,请点击右下角的 [推荐],谢谢!

  • 相关阅读:
    A1082 Read Number in Chinese [汉字读数字]
    A1077 Kuchiguse [字符串找相同后缀]
    A1035 Password [修改字符]
    A1001 A+B Format [字符串处理]
    django文档总结之会话保持、视图、中间件(2)
    django文档总结之基本操作(1)
    VSCode常用命令快捷键
    vscode配置远程免密
    linux下deb包的管理及制作 | 一次成功
    shell脚本之sed详解(1)
  • 原文地址:https://www.cnblogs.com/ericli-ericli/p/4728841.html
Copyright © 2011-2022 走看看