C#枚举数值与名称的转换实例分享_C#教程-查字典教程网
C#枚举数值与名称的转换实例分享
C#枚举数值与名称的转换实例分享
发布时间:2016-12-28 来源:查字典编辑
摘要:首先建立一个枚举:复制代码代码如下://////颜色///publicenumColorType{//////红色///Red,//////...

首先建立一个枚举:

复制代码 代码如下:

/// <summary>

/// 颜色

/// </summary>

public enum ColorType

{

/// <summary>

/// 红色

/// </summary>

Red,

/// <summary>

/// 蓝色

/// </summary>

Bule,

/// <summary>

/// 绿色

/// </summary>

Green

}

获得枚举数值:

复制代码 代码如下:

int code = ColorType.Red.GetHashCode();

有数值获得枚举名称:

复制代码 代码如下:

string name1=ColorType.Red.ToString();

//或者

string name2= Enum.Parse(typeof(ColorType), code.ToString()).ToString();

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

复制代码 代码如下:

/// <summary>

/// 颜色

/// </summary>

public enum ColorType

{

/// <summary>

/// 红色

/// </summary>

[Description("红色")]

Red,

/// <summary>

/// 蓝色

/// </summary>

[Description("蓝色")]

Bule,

/// <summary>

/// 绿色

/// </summary>

[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";

}

}

/// <summary>

/// 返回指定枚举类型的指定值的描述

/// </summary>

/// <param name="t">枚举类型</param>

/// <param name="v">枚举值</param>

/// <returns></returns>

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)

相关阅读
推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
  • 大家都在看
  • 小编推荐
  • 猜你喜欢
  • 最新C#教程学习
    热门C#教程学习
    编程开发子分类