当前位置:  编程技术>.net/c#/asp.net

C#枚举数值与名称的转换实例分享

    来源: 互联网  发布时间:2014-10-22

    本文导语:  首先建立一个枚举: 代码如下:///     /// 颜色    ///     public enum ColorType    {        ///         /// 红色         ///         Red,         ///         /// 蓝色         ///         Bule,         //...

首先建立一个枚举:

代码如下:

///
    /// 颜色
    ///
    public enum ColorType
    {
        ///
        /// 红色
         ///
        Red,

        ///
        /// 蓝色
         ///
        Bule,

        ///
        /// 绿色
         ///
        Green
    }


获得枚举数值:

代码如下:

int code = ColorType.Red.GetHashCode();

有数值获得枚举名称:

代码如下:

string name1=ColorType.Red.ToString();
//或者
string name2= Enum.Parse(typeof(ColorType), code.ToString()).ToString();

以上获得的枚举名称,是英文,如果要获得相应的中文解释,可以利用Attribute来实现,代码如下:

代码如下:

///
    /// 颜色
    ///
    public enum ColorType
    {
        ///
        /// 红色
        ///
        [Description("红色")]
        Red,

        ///
        /// 蓝色
        ///
        [Description("蓝色")]
        Bule,

        ///
        /// 绿色
        ///
        [Description("绿色")]
        Green
    }


在枚举中,加入Description,然后建立一个类,有如下方法用来把枚举转换成对应的中文解释:

代码如下:

public static class EnumDemo
    {
        private static string GetName(System.Type t, object v)
        {
            try
            {
                return Enum.GetName(t, v);
            }
            catch
            {
                return "UNKNOWN";
            }
        }

        ///
        /// 返回指定枚举类型的指定值的描述
         ///
        /// 枚举类型
        /// 枚举值
        ///
        public static string GetDescription(System.Type t, object v)
        {
            try
            {
                FieldInfo oFieldInfo = t.GetField(GetName(t, v));
                DescriptionAttribute[] attributes = (DescriptionAttribute[])oFieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
                return (attributes.Length > 0) ? attributes[0].Description : GetName(t, v);
            }
            catch
            {
                return "UNKNOWN";
            }
        }
    }


调用方法如下:

代码如下:

string name3=EnumDemo.GetDescription(typeof(ColorType), ColorType.Red)

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.sql枚举clientinfostatus的类成员方法: valueof定义及介绍
  • java自定义枚举转换器示例
  • java命名空间java.math枚举roundingmode的类成员方法: valueof定义及介绍
  • 枚举和宏的区别详细解析
  • java命名空间javax.swing枚举dropmode的类成员方法: valueof定义及介绍
  • 枚举类型变量如何定义与初始化,如何给该变量加入新值?
  • java命名空间javax.swing枚举sortorder的类成员方法: valueof定义及介绍
  • 关于Ubuntu枚举usb设备的问题?
  • java命名空间java.sql枚举rowidlifetime的类成员方法: valueof定义及介绍
  • Linux下怎么枚举usb设备?
  • java命名空间javax.tools枚举standardlocation的类成员方法: valueof定义及介绍
  • corba枚举类型参数传递问题?(大笨鸟问题)
  • java命名空间javax.xml.ws枚举service.mode成员方法: valueof定义参考
  • java中没有枚举变量,类似的功能如何简单实现?
  • java命名空间java.lang.management枚举memorytype的类成员方法: valueof定义及介绍
  • JAVA 为什么没有枚举类型???
  • java命名空间java.lang.annotation枚举elementtype的类成员方法: valueof定义及介绍
  • 如何进行输入法枚举
  • java命名空间javax.lang.model枚举sourceversion的类成员方法: valueof定义及介绍
  • 枚举类型定义重复疑问?
  • java命名空间java.lang.annotation枚举retentionpolicy的类成员方法: valueof定义及介绍
  • java枚举的使用示例


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3