手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#枚举数值与名称的转换实例分享
C#枚举数值与名称的转换实例分享
摘要:首先建立一个枚举:复制代码代码如下://////颜色///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#打印出正等腰三角形实例代码

C#中读写INI文件的方法例子

计算字符串和文件MD5值的小例子

gridview 显示图片的实例代码

C#枚举中的位运算权限分配浅谈

C# 图片剪切与缩小的实例

C#制作鹰眼的详细全过程(带注释)实例代码

C#生成注册码的实例代码

C# 一个WCF简单实例

C#泛型与非泛型性能比较的实例

精品推荐
分类导航