最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

C# 從枚舉值獲取對(duì)應(yīng)的文本描述詳解

 更新時(shí)間:2017年01月21日 16:42:07   投稿:lqh  
這篇文章主要介紹了C# 從枚舉值獲取對(duì)應(yīng)的文本描述詳解的相關(guān)資料,需要的朋友可以參考下

C# 從枚舉值獲取對(duì)應(yīng)的文本描述詳解

有時(shí)枚舉值在顯示時(shí),需要顯示枚舉值對(duì)應(yīng)的文本串。一種方案是在調(diào)用的地方使用switch或者if來判斷枚舉值,然后賦給不同的文本串,但這樣一來,如果有較多的地方都用到的時(shí)候就會(huì)比較麻煩。當(dāng)然有人說,這種情況下,可以針對(duì)這種枚舉值封裝一個(gè)方法,然后來調(diào)用。那如果有多個(gè)枚舉類型都有這樣的需求呢?有沒有什么比較通用的解決辦法?有的。

這里需要用到Description屬性,給每個(gè)枚舉值都賦上一個(gè)該屬性,然后在該屬性中賦上要描述的文本串。比如

#region YesNoEnum 
 public enum YesNoEnum 
 { 
   [Description("是")] 
   Yes, 
   [Description("否")] 
   No 
 } 
 #endregion 

注:Desscription需要引用using System.ComponentModel;

那要如何獲取這個(gè)Description屬性的值呢?我們可以作用反射,代碼如下

public static class EnumUtil 
 { 
   #region FetchDescription 
   /// <summary> 
   /// 獲取枚舉值的描述文本 
   /// </summary> 
   /// <param name="value"></param> 
   /// <returns></returns> 
   public static string FetchDescription(this Enum value) 
   { 
     FieldInfo fi = value.GetType().GetField(value.ToString()); 
     DescriptionAttribute[] attributes = 
        (DescriptionAttribute[])fi.GetCustomAttributes( 
        typeof(DescriptionAttribute), false); 
     return (attributes.Length > 0) ? attributes[0].Description : value.ToString(); 
   } 
   #endregion 
 } 

注:我們這里寫的雖然是靜態(tài)方法,但是可以適用于所有的Enum類。EnumUtil必須是靜態(tài)類,而方法也必須是靜態(tài)方法,同時(shí)第一個(gè)參數(shù)必須是this的,這樣才能將方法擴(kuò)展到Enum類中,以適用到所有的枚舉中。

下面是調(diào)用代碼

YesNoEnum yesNoEnum = YesNoEnum.Yes; 
 string description = yesNoEnum.FetchDescription(); 
 Console.WriteLine(description); 

調(diào)用的截圖如下



從圖中可以看到description得到了我們在枚舉中指定的Description的文本。同時(shí)YesNoEnum的枚舉實(shí)例增加了擴(kuò)展方法FetchDescription.

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • C# Marshal類基本概念和入門實(shí)例講解

    C# Marshal類基本概念和入門實(shí)例講解

    這篇文章主要介紹了C# Marshal類基本概念和入門實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。
    2023-02-02
  • 深入談?wù)凜#9新特性的實(shí)際運(yùn)用

    深入談?wù)凜#9新特性的實(shí)際運(yùn)用

    這篇文章主要給大家介紹了C#9新特性的實(shí)際運(yùn)用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • C# String字符串案例詳解

    C# String字符串案例詳解

    這篇文章主要介紹了C# String字符串案例詳解,本篇文章通過簡要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • C#通過反射打開相應(yīng)窗體方法分享

    C#通過反射打開相應(yīng)窗體方法分享

    本文章來給各位同學(xué)介紹關(guān)于C#單擊菜單欄或工具欄時(shí)通過反射打開窗體的方法,有需要了解的朋友可進(jìn)入?yún)⒖紖⒖肌?/div> 2015-05-05
  • C#實(shí)現(xiàn)屏幕拷貝的方法

    C#實(shí)現(xiàn)屏幕拷貝的方法

    這篇文章主要介紹了C#實(shí)現(xiàn)屏幕拷貝的方法,實(shí)例分析了兩種常用的屏幕拷貝實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2015-06-06
  • 基于C#實(shí)現(xiàn)任意格式JSON文本的HTTP交互抽象類

    基于C#實(shí)現(xiàn)任意格式JSON文本的HTTP交互抽象類

    為了實(shí)現(xiàn)一個(gè)支持任意格式JSON交互的抽象類,并且在整個(gè)過程中不需要對(duì)JSON格式數(shù)據(jù)進(jìn)行序列化和反序列化操作,可以使用C#中的HttpClient類來進(jìn)行HTTP請(qǐng)求和響應(yīng),本文給大家介紹了基于C#實(shí)現(xiàn)任意格式JSON文本的HTTP交互抽象類,需要的朋友可以參考下
    2025-03-03
  • 非常實(shí)用的C#字符串操作處理類StringHelper.cs

    非常實(shí)用的C#字符串操作處理類StringHelper.cs

    這篇文章主要為大家詳細(xì)介紹了非常實(shí)用的C#字符串操作處理類StringHelper.cs,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • Unity UGUI的ScrollRect滾動(dòng)視圖組件使用詳解

    Unity UGUI的ScrollRect滾動(dòng)視圖組件使用詳解

    這篇文章主要為大家介紹了Unity UGUI的ScrollRect滾動(dòng)視圖組件使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-07-07
  • c# 實(shí)現(xiàn)MD5,SHA1,SHA256,SHA512等常用加密算法源代碼

    c# 實(shí)現(xiàn)MD5,SHA1,SHA256,SHA512等常用加密算法源代碼

    c# 如何實(shí)現(xiàn)MD5,SHA1,SHA256,SHA512等常用加密算法,需要的朋友可以參考下
    2012-12-12
  • Unity鍵盤WASD實(shí)現(xiàn)物體移動(dòng)

    Unity鍵盤WASD實(shí)現(xiàn)物體移動(dòng)

    這篇文章主要為大家詳細(xì)介紹了Unity鍵盤WASD實(shí)現(xiàn)物體移動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02

最新評(píng)論

碌曲县| 桃园县| 唐河县| 隆安县| 延安市| 苏尼特左旗| 资溪县| 正安县| 黑山县| 东城区| 阿勒泰市| 东宁县| 洞头县| 泰来县| 西华县| 淄博市| 卓资县| 福泉市| 永修县| 滕州市| 额尔古纳市| 登封市| 平和县| 磐安县| 内江市| 田东县| 名山县| 缙云县| 夹江县| 新沂市| 南汇区| 古蔺县| 尉氏县| 盈江县| 临漳县| 台南县| 密云县| 梅州市| 景德镇市| 丹凤县| 远安县|