enum工具类

文章介绍了如何在C#中扩展枚举类,提供GetDescription,GetValue,GetName和IsDefined方法,分别用于获取枚举的描述、值、名称以及检查枚举值是否定义。
摘要由CSDN通过智能技术生成
  public static class EnumExtensions
  {
      public static string GetDescription(this Enum val)
      {
          var field = val.GetType().GetField(val.ToString());
          var customAttribute = Attribute.GetCustomAttribute(field, typeof(DescriptionAttribute));
          return customAttribute == null ? val.ToString() : ((DescriptionAttribute)customAttribute).Description;
      }


      /// <summary>
      /// 根据名称获取枚举值
      /// </summary>
      /// <param name="val">枚举名称</param>
      /// <returns></returns>
      public static string GetValue(this Enum val)
      {
          return Convert.ToInt32(Enum.Parse(val.GetType(), val.ToString(), true)).ToString();
      }

      /// <summary>
      /// 根据名称获取枚举名
      /// </summary>
      /// <param name="val">枚举名称</param>
      /// <returns></returns>
      public static string GetName(this Enum val)
      {
          return val.ToString();
      }


      /// <summary>  
      /// 检查枚举值是否存在  
      /// </summary>  
      /// <param name="val">要检查的枚举值</param>  
      /// <returns>如果存在则返回 true,否则返回 false</returns>  
      public static bool IsDefined(this Enum val)
      {
          var type = val.GetType();
          return Enum.IsDefined(type, val);
      }
  }

使用方法

 /// <summary>
 /// 会员错误状态信息
 /// </summary>
 public enum CustomerErrorMsg
 {
     [Description("注册时,该id已存在")]
     UserId已被使用 = 20001,
 }



var d2 = CustomerErrorMsg.UserId已被使用.GetName();
var d3 = CustomerErrorMsg.UserId已被使用.GetValue();
var d1 = CustomerErrorMsg.UserId已被使用.GetDescription();

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值