C#枚舉數(shù)值與名稱的轉(zhuǎn)換實(shí)例分享
首先建立一個(gè)枚舉:
/// <summary>
/// 顏色
/// </summary>
public enum ColorType
{
/// <summary>
/// 紅色
/// </summary>
Red,
/// <summary>
/// 藍(lán)色
/// </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來(lái)實(shí)現(xiàn),代碼如下:
/// <summary>
/// 顏色
/// </summary>
public enum ColorType
{
/// <summary>
/// 紅色
/// </summary>
[Description("紅色")]
Red,
/// <summary>
/// 藍(lán)色
/// </summary>
[Description("藍(lán)色")]
Bule,
/// <summary>
/// 綠色
/// </summary>
[Description("綠色")]
Green
}
在枚舉中,加入Description,然后建立一個(gè)類,有如下方法用來(lái)把枚舉轉(zhuǎn)換成對(duì)應(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#面相對(duì)象編程中的類與對(duì)象的特性與概念
這篇文章主要介紹了C#面相對(duì)象編程中的類與對(duì)象的特性與概念,OOP面向?qū)ο笳Z(yǔ)言相對(duì)C語(yǔ)言這樣面相過(guò)程的語(yǔ)言來(lái)說(shuō)具有類和對(duì)象以及方法這樣的特性,需要的朋友可以參考下2016-01-01
C++調(diào)用C#的DLL程序?qū)崿F(xiàn)方法
本文通過(guò)例子,講述了C++調(diào)用C#的DLL程序的方法,作出了以下總結(jié),具有一定的參考價(jià)值,下面就讓我們一起來(lái)學(xué)習(xí)吧2015-10-10
C#的靜態(tài)工廠方法與構(gòu)造函數(shù)相比有哪些優(yōu)缺點(diǎn)
這篇文章主要介紹了C#的靜態(tài)工廠方法與構(gòu)造函數(shù)對(duì)比的優(yōu)缺點(diǎn),文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
C#動(dòng)態(tài)執(zhí)行字符串(動(dòng)態(tài)創(chuàng)建代碼)的實(shí)例代碼
在編寫C#程序的時(shí)候,有時(shí)我們需要?jiǎng)討B(tài)生成一些代碼并執(zhí)行。然而C#不像JavaScript有一個(gè)Eval函數(shù),可以動(dòng)態(tài)的執(zhí)行代碼。所有這些功能都要我們自己去完成2013-03-03

