C#枚舉數(shù)值與名稱的轉(zhuǎn)換實例分享
首先建立一個枚舉:
/// <summary>
/// 顏色
/// </summary>
public enum ColorType
{
/// <summary>
/// 紅色
/// </summary>
Red,
/// <summary>
/// 藍色
/// </summary>
Bule,
/// <summary>
/// 綠色
/// </summary>
Green
}
獲得枚舉數(shù)值:
int code = ColorType.Red.GetHashCode();
有數(shù)值獲得枚舉名稱:
string name1=ColorType.Red.ToString();
//或者
string name2= Enum.Parse(typeof(ColorType), code.ToString()).ToString();
以上獲得的枚舉名稱,是英文,如果要獲得相應(yīng)的中文解釋,可以利用Attribute來實現(xiàn),代碼如下:
/// <summary>
/// 顏色
/// </summary>
public enum ColorType
{
/// <summary>
/// 紅色
/// </summary>
[Description("紅色")]
Red,
/// <summary>
/// 藍色
/// </summary>
[Description("藍色")]
Bule,
/// <summary>
/// 綠色
/// </summary>
[Description("綠色")]
Green
}
在枚舉中,加入Description,然后建立一個類,有如下方法用來把枚舉轉(zhuǎn)換成對應(yīng)的中文解釋:
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";
}
}
}
調(diào)用方法如下:
string name3=EnumDemo.GetDescription(typeof(ColorType), ColorType.Red)
相關(guān)文章
c# DevExpress gridcontrol日期行的顯示格式設(shè)置
這篇文章主要介紹了c# DevExpress gridcontrol日期行的顯示格式設(shè)置,需要的朋友可以參考下2017-02-02
C++調(diào)用C#的DLL程序?qū)崿F(xiàn)方法
本文通過例子,講述了C++調(diào)用C#的DLL程序的方法,作出了以下總結(jié),具有一定的參考價值,下面就讓我們一起來學(xué)習(xí)吧2015-10-10
C#的靜態(tài)工廠方法與構(gòu)造函數(shù)相比有哪些優(yōu)缺點
這篇文章主要介紹了C#的靜態(tài)工廠方法與構(gòu)造函數(shù)對比的優(yōu)缺點,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
C#動態(tài)執(zhí)行字符串(動態(tài)創(chuàng)建代碼)的實例代碼
在編寫C#程序的時候,有時我們需要動態(tài)生成一些代碼并執(zhí)行。然而C#不像JavaScript有一個Eval函數(shù),可以動態(tài)的執(zhí)行代碼。所有這些功能都要我們自己去完成2013-03-03

