a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > C# > 正文

通過特性(attribute)為枚舉添加更多信息示例

2020-01-24 02:50:23
字體:
來源:轉載
供稿:網友

特性(Attribute)是將額外數據關聯到一個屬性(以及其他構造)的一種方式,而枚舉則是在編程中最常用的一種構造,枚舉本質上其實是一些常量值,相對于直接使用這些常量值,枚舉為我們提供了更好的可讀性。我們知道枚舉的基礎類型只能是值類型(byte、sbyte、short、ushort、int、uint、long 或 ulong),一般的情況下枚舉能夠滿足我們的需求,但是有時候我們需要為枚舉附加更多信息,僅僅只是使用這些值類型是不夠的,這時通過對枚舉類型應用特性可以使枚舉帶有更多的信息。

在枚舉中使用DescriptionAttribute特性

首先引入:using System.ComponentModel 命名空間,下面是一個枚舉應用了DescriptionAttribute特性:

復制代碼 代碼如下:

enum Fruit
{
    [Description("蘋果")]
    Apple,
    [Description("橙子")]
    Orange,
    [Description("西瓜")]
    Watermelon
}

下面是一個獲取Description特性的擴展方法:

復制代碼 代碼如下:

/// <summary>
/// 獲取枚舉描述特性值
/// </summary>
/// <typeparam name="TEnum"></typeparam>
/// <param name="enumerationValue">枚舉值</param>
/// <returns>枚舉值的描述/returns>
public static string GetDescription<TEnum>(this TEnum enumerationValue)
   where TEnum : struct, IComparable, IFormattable, IConvertible
{
   Type type = enumerationValue.GetType();
   if (!type.IsEnum)
   {
  throw new ArgumentException("EnumerationValue必須是一個枚舉值", "enumerationValue");
   }

   //使用反射獲取該枚舉的成員信息
   MemberInfo[] memberInfo = type.GetMember(enumerationValue.ToString());
   if (memberInfo != null && memberInfo.Length > 0)
   {
  object[] attrs = memberInfo[0].GetCustomAttributes(typeof(DescriptionAttribute), false);

  if (attrs != null && attrs.Length > 0)
  {
 //返回枚舉值得描述信息
 return ((DescriptionAttribute)attrs[0]).Description;
  }
   }
   //如果沒有描述特性的值,返回該枚舉值得字符串形式
   return enumerationValue.ToString();
}

最后,我們就可以利用該擴展方法獲取該枚舉值得描述信息了:

復制代碼 代碼如下:

public static void Main(string[] args)
{
//description = "橙子"
string description = Fruit.Orange.GetDescription();
}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 亚洲精品大片 | 日韩毛片在线免费观看 | 神马香蕉久久 | 在线 丝袜 欧美 日韩 制服 | 欧美日韩激情四射 | 欧美日韩在线看 | 免费在线成人 | 日av一区 | 日本精品在线观看 | 日本国产精品视频 | 最新中文字幕在线 | 国产精品久久久久久久午夜片 | 国产午夜精品视频 | 成人黄色免费视频网站 | 日韩在线精品强乱中文字幕 | 久久99精品热在线观看 | 国内外成人在线视频 | 久久久美女 | 国产偷国产偷精品高清尤物 | 不卡一区二区三区四区 | 久久兔费看a级 | 亚洲视频一区二区 | 欧美一区二区三 | 日韩一区二区三区视频在线观看 | 午夜视频| 久久不色 | 亚洲啊v | 午夜精品久久久久久久久久久久久 | 国产一区二区精彩视频 | 午夜三区 | 久久精品电影网 | 日韩毛片免费在线观看 | www.成人| 日本久久久 | 国产又粗又长又硬又猛电影 | 亚洲美女视频一区二区三区 | 色婷婷综合网 | 欧美一区,二区 | 国产综合精品一区二区三区 | 全免费一级毛片免费看 | 国产成人精品一区二三区四区五区 |