欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

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

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

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

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

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

那要如何獲取這個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ù)必須是this的,這樣才能將方法擴(kuò)展到Enum類中,以適用到所有的枚舉中。

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

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

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



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

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

相關(guān)文章

  • .net實現(xiàn)文件讀寫的幾種常用方法

    .net實現(xiàn)文件讀寫的幾種常用方法

    這篇文章主要介紹了.net實現(xiàn)文件讀寫的幾種常用方法,非常實用,需要的朋友可以參考下
    2014-08-08
  • C#使用listView增刪操作實例

    C#使用listView增刪操作實例

    這篇文章主要介紹了C#使用listView增刪操作的實現(xiàn)方法,實例分析了C#中使用listView控件進(jìn)行動態(tài)添加、選中刪除等操作的技巧,具有一定的參考借鑒價值,需要的朋友可以參考下
    2014-12-12
  • Unity實現(xiàn)大轉(zhuǎn)盤的簡單筆記

    Unity實現(xiàn)大轉(zhuǎn)盤的簡單筆記

    這篇文章主要為大家分享了Unity實現(xiàn)大轉(zhuǎn)盤的簡單筆記,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#基礎(chǔ)語法:可空類型詳解

    C#基礎(chǔ)語法:可空類型詳解

    這篇文章主要介紹了C#基礎(chǔ)語法:可空類型詳解,本文分析了可空類型的源碼、研究了可空類型強制轉(zhuǎn)換為常規(guī)類型、可空類型的運算等內(nèi)容,需要的朋友可以參考下
    2015-06-06
  • C#中this用法系列(二) 通過this修飾符為原始類型擴(kuò)展方法

    C#中this用法系列(二) 通過this修飾符為原始類型擴(kuò)展方法

    定義一個靜態(tài)類,類中定義靜態(tài)方法,方法中參數(shù)類型前邊加上this修飾符,即可實現(xiàn)對參數(shù)類型的方法擴(kuò)展,下面通過實例代碼給大家介紹下,需要的朋友參考下吧
    2016-12-12
  • C#使用虛擬方法實現(xiàn)多態(tài)

    C#使用虛擬方法實現(xiàn)多態(tài)

    這篇文章主要介紹了C#使用虛擬方法實現(xiàn)多態(tài),涉及C#多態(tài)的實現(xiàn)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-05-05
  • C#中重載相等(==)運算符示例

    C#中重載相等(==)運算符示例

    這篇文章主要介紹了C#中重載相等(==)運算符示例,運算符重載一直是一個很詭異事情,本文通過實例探討由運算符重載引出的一個問題,需要的朋友可以參考下
    2015-06-06
  • C#中parallel.foreach實現(xiàn)多線程處理

    C#中parallel.foreach實現(xiàn)多線程處理

    Parallel.ForEach方法是C#中的一個并行循環(huán)方法,它可以并行地對一個集合進(jìn)行迭代操作,本文主要介紹了C#中parallel.foreach實現(xiàn)多線程處理,具有一定的參考價值,感興趣的可以了解一下
    2024-02-02
  • C#引用類型轉(zhuǎn)換的常見方式總結(jié)

    C#引用類型轉(zhuǎn)換的常見方式總結(jié)

    這篇文章主要介紹了C#引用類型轉(zhuǎn)換的常見方式,包括子類轉(zhuǎn)換成父類,父類轉(zhuǎn)換成子類,以及不是子父級關(guān)系類之間的轉(zhuǎn)換,需要的朋友可以參考下
    2014-09-09
  • C#中Trim()、TrimStart()、TrimEnd()的用法介紹

    C#中Trim()、TrimStart()、TrimEnd()的用法介紹

    這篇文章主要介紹了C#中Trim()、TrimStart()、TrimEnd()的用法,有需要的朋友可以參考一下
    2014-01-01

最新評論