C# enum 添加字符串(中文)标记
2016-09-14 10:21
537 查看
来源:《编写高质量代码改善C#程序的157个建议》-建议110:用类来代替enum
废话不多说,代码来得更亲切。
废话不多说,代码来得更亲切。
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace enumDemo { class Program { static void Main(string[] args) { Console.WriteLine(((int)week.monday).ToString()); Console.WriteLine(week.monday.ToString()); Console.WriteLine(EnumHelper.GetDescription(week.monday)); Console.WriteLine(((int)week.tuesday).ToString()); Console.WriteLine(week.tuesday.ToString()); Console.WriteLine(EnumHelper.GetDescription(week.tuesday)); if (week.优惠券.ToString().Equals("优惠券")) { Console.WriteLine("bingo"); } Console.ReadLine(); } enum week { [EnumDescription("星期一")] monday, [EnumDescription("星期二")] tuesday, 优惠券 } #region 添加标记方法 [AttributeUsage(AttributeTargets.Field, AllowMultiple = false)] public sealed class EnumDescriptionAttribute : Attribute { private string description; public string Description { get { return this.description; } } public EnumDescriptionAttribute(string description) : base() { this.description = description; } } public static class EnumHelper { public static string GetDescription(Enum value) { if (value == null) { throw new ArgumentNullException("value"); } string description = value.ToString(); System.Reflection.FieldInfo fieldinfo = value.GetType().GetField(description); EnumDescriptionAttribute[] attributes = (EnumDescriptionAttribute[])fieldinfo.GetCustomAttributes(typeof(EnumDescriptionAttribute), false); if (attributes != null && attributes.Length > 0) { description = attributes[0].Description; } return description; } } #endregion class weekend { public static readonly weekend monday = new weekend(0); public static readonly weekend tuesday = new weekend(1); private int _infoType; private weekend(int infoType) { _infoType = infoType; } public override string ToString() { switch (_infoType) { case 0: return "星期一"; case 1: return "星期二"; default: throw new Exception("不正确的输入"); } //return base.ToString(); } } } }
相关文章推荐
- c#:反射访问私有变量
- 追着嘟嘟学c#系列入门第二篇-----c#的变量和数据类型【蓝鸥出品】
- c# 验证码图片生成类
- c# 系统校时工具类
- c# 字符串验证(邮箱、电话、数字、ip、身份证等)
- c# 字符串工具类
- c# 自定义排序类(冒泡、选择、插入、希尔、快速、归并、堆排序等)
- c# 获取随机数字/字符/时间
- c# 汉字转拼音
- c# 实体处理工具类
- c# 获取机器硬件信息 (硬盘,cpu,内存等)
- c# 文件日志处理 需要log4net配置
- c# 模拟POST上传文件到服务器
- c# 加密工具类
- C# Combobox清空值
- c# 发送邮件
- c# 文件/文件夹操作
- C# 操作excel 关闭excel的方法
- c# DataTable 数据集处理DataTableHandler
- c# DataTable 导出csv文件