关于如何方便使用枚举
2017-10-11 09:06
260 查看
近期朋友给我发来他们的工程代码,被我发现居然有中文枚举。。。。。
没事闲的 帮他改写一下并且重新整理一下代码
不多说上demo 代码:
输出结果为:
Attribute Helper 文件
原理:通过 Attribute 来增加一下枚举的相应的string value
没事闲的 帮他改写一下并且重新整理一下代码
不多说上demo 代码:
class Program { static void Main(string[] args) { Program program = new Program(); program.Start(); Console.ReadLine(); } void Start() { //Write String Value by default method ToString() Console.WriteLine(Days.Sunday); //write Attribute Value Console.WriteLine(Days.Sunday.StringValue()); //write Int Value Console.WriteLine((int)Days.Sunday); } } [Flags] public enum Days { [EnumValue("Sun")] Sunday = 0x1, [EnumValue("Mon")] Monday = 0x2, [EnumValue("Tue")] Tuesday = 0x4, [EnumValue("Wed")] Wednesday = 0x8, [EnumValue("Thur")] Thursday = 0x10, [EnumValue("Fri")] Friday = 0x20, [EnumValue("Sat")] Saturday = 0x40 }
输出结果为:
Attribute Helper 文件
public static class ReflectionHelpers { public static string GetCustomEnumStringValue(object objEnum) { var fi = objEnum.GetType().GetField(objEnum.ToString()); var attributes = (EnumValueAttribute[])fi.GetCustomAttributes(typeof(EnumValueAttribute), false); return (attributes.Length > 0) ? attributes[0].EnumValue : objEnum.ToString(); } public static string StringValue(this Enum value) { return GetCustomEnumStringValue(value); } } public class EnumValueAttribute : Attribute { public string EnumValue; public EnumValueAttribute(string enumValue) { this.EnumValue = enumValue; } public override string ToString() { return this.EnumValue; } }
原理:通过 Attribute 来增加一下枚举的相应的string value
相关文章推荐
- 如何将整型数转换为枚举类型以方便在switch中的使用
- 如何将整型数转换为枚举类型以方便在switch中的使用
- 【转】关于如何在类库中使用Response,Request,Server,Session!
- 关于对“如何使用hibernate的event/eventlistener ”的补充
- 关于如何使用自定义的结束消息循环的方式 (转载)
- 关于如何在Blender中使用RenderMan(Pixie Aqsis etc.)渲染的配置
- 关于如何使用ADO连接数据库
- sql server 关于函数中如何使用Getdate() (转贴)
- 关于.NET程序中使用Excel对象后,如何结束残留的Excel进程
- 关于如何使用TXT、CSV表的问题.
- sqlserver关于函数中如何使用Getdate()(转贴)
- 关于在php中如何使用session和Cookies
- 关于如何使用策略禁止USB的问题
- 关于如何使用vc6.0读取xml文件中的内容
- 如何使用 WMI 枚举当前系统进程?
- 关于如何使用struts标签输出值为map的list
- 关于如何让 JBuilderX 使用中文字体
- 关于如何使用指定的“字符串”来调用类?
- 如何使用户能像Excel一样方便的复制Datagridview中的单元格区域数据[C#]
- 关于如何在BCP和Bulk Insert中使用 文本限定符