手机
当前位置:查字典教程网 >编程开发 >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# 合并GriewView相同列的小例子

gridview 显示图片的实例代码

C#中调用命令行cmd开启wifi热点的实例代码

C# 拓展方法的简单实例

c# 泛型类型参数与约束的深入分析

C#实现协同过滤算法的实例代码

C# 实现简单打印的实例代码

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

C# 大小写转换(金额)实例代码

精品推荐
分类导航