• 转-C#让枚举返回字符串


    下面的手段是使用给枚举项打标签的方式,来返回字符串

    下面分别定义一个属性类,和一个枚举帮助类

    [csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
     
    1. [AttributeUsage(AttributeTargets.Field,AllowMultiple = false)]  
    2. public sealed class EnumDescriptionAttribute : Attribute  
    3. {  
    4.     private string description;  
    5.     public string Description { get { return description; } }  
    6.   
    7.     public EnumDescriptionAttribute(string description)  
    8.         : base()  
    9.     {  
    10.         this.description = description;  
    11.     }  
    12. }  
    [csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
     
    1. public static class EnumHelper  
    2. {  
    3.     public static string GetDescription(Enum value)  
    4.     {  
    5.         if (value == null)  
    6.         {  
    7.             throw new ArgumentException("value");  
    8.         }  
    9.         string description = value.ToString();  
    10.         var fieldInfo = value.GetType().GetField(description);  
    11.         var attributes =  
    12.             (EnumDescriptionAttribute[]) fieldInfo.GetCustomAttributes(typeof (EnumDescriptionAttribute), false);  
    13.         if (attributes != null && attributes.Length > 0)  
    14.         {  
    15.             description = attributes[0].Description;  
    16.         }  
    17.         return description;  
    18.     }  
    19. }  

    使用举例:

    [csharp] view plaincopyprint?在CODE上查看代码片派生到我的代码片
     
    1. enum Week  
    2. {  
    3.     [EnumDescription("星期一")]  
    4.     Monday,  
    5.     [EnumDescription("星期二")]  
    6.     Tuesday  
    7. }  
    8.   
    9. //下面打印结果为: 星期一  
    10. Console.WriteLine(EnuHelper.GetDescription(Week.Monday))  
  • 相关阅读:
    unicode下各种类型转换CString、string
    单元测试简介
    linux系统目录详解
    Python 几个重要的内置函数
    python join split
    将博客搬至CSDN
    COCOS2DX3.0的3种触摸响应机制
    [转] 千万别在最能吃苦的年纪选择安逸
    明白什么是“五险一金”
    MAC 安装更新 ANT
  • 原文地址:https://www.cnblogs.com/xjxz/p/4649016.html
Copyright © 2020-2023  润新知