枚举帮助类

 1 using System;
 2 using System.Collections.Generic;
 3 using System.ComponentModel;
 4 using System.Linq;
 5
 6 namespace EnumHelper
 7 {
 8     /// <summary>
 9     /// 枚举帮助类
10     /// 1、获取枚举的描述文本
11     /// 2、获取枚举名和描述信息的列表
12     /// </summary>
13     public static class EnumHelper
14     {
15         /// <summary>
16         /// 获取枚举值的描述文本
17         /// </summary>
18         /// <param name="e">枚举值</param>
19         /// <returns></returns>
20         public static string Description(this System.Enum e)
21         {
22             Type enumType = e.GetType();
23             var name = Enum.GetName(enumType, e);
24             string des = GetDescription(enumType, name);
25             return des;
26         }
27
28         /// <summary>
29         /// 获取枚举名和描述信息的列表
30         /// </summary>
31         /// <typeparam name="T">枚举类型</typeparam>
32         /// <param name="EnumType">类型</param>
33         /// <returns>枚举名和描述信息键值对</returns>
34         public static Dictionary<T, string> GetEnumAndDescription<T>(this Type EnumType) where T : struct
35         {
36             if (!EnumType.IsEnum)
37                 throw new ArgumentException("GetEnumValues: Type ‘" + EnumType.Name + "‘不是枚举类型");
38
39             Dictionary<T, string> dic = new Dictionary<T, string>();
40             foreach (var item in Enum.GetNames(EnumType))
41             {
42                 var _enum = (T)Enum.Parse(EnumType, item);
43                 var des = GetDescription(EnumType, item);
44                 dic.Add(_enum, des);
45             }
46             return dic;
47         }
48
49         /// <summary>
50         /// 获取枚举名的描述文本
51         /// </summary>
52         /// <param name="enumType">类型</param>
53         /// <param name="name">枚举名</param>
54         /// <returns>描述文本</returns>
55         private static string GetDescription(Type enumType, string name)
56         {
57             string des = string.Empty;
58             var fieldInfo = enumType.GetFields().FirstOrDefault(a => a.Name == name);
59             object[] obj = fieldInfo.GetCustomAttributes(typeof(DescriptionAttribute), false);
60             if (obj.Length > 0)
61             {
62                 des = ((DescriptionAttribute)obj[0]).Description;
63             }
64             return des;
65         }
66     }
67 }

时间: 2024-08-29 20:28:32

枚举帮助类的相关文章

mybatis自定义枚举转换类

mybatis提供了 EnumTypeHandler和EnumOrdinalTypeHandler完成枚举类型的转换,两者的功能已经基本满足了日常的使用.但是可能有这 样的需求:由于某种原因,我们不想使用枚举的name和ordinal作为数据存储字段.mybatis的自定义转换类出现了. 示例 使用一段代码,将枚举类EnumStatus中的code属性存储到数据库对应字段statusCustom. 自定义转换类 package com.sg.util.typehandler; import ja

枚举功能类

enum.php /** * 本类主要是实现枚举的功能 * @param unknown_type $base_class * @param unknown_type $args * @param unknown_type $codeArgs */ function enum($base_class, array $args,array $codeArgs){ $class_parts = preg_split('/\s+/', $base_class); $base_class_name =

OC基础--结构体 枚举做类成员属性

结构体  枚举作类的成员属性: 定义一个学生类 性别 -- 枚举 生日 入学日期  毕业日期  --  结构体 代码示例: 声明文件 Student.h: #import <Foundation/Foundation.h> typedef struct { int year; int month; int day; } Date; typedef enum { kGenderGirl = 0, kGenderBoy = 1, kGenderChunGe = 2 } Gender; @inter

枚举 用类的方法模拟枚举

package cn.itcast.day1; public class Weekday0 { private Weekday0(){} public static final Weekday0 SUN = new Weekday0(); public static final Weekday0 MON = new Weekday0(); public static final Weekday0 TUS = new Weekday0(); public static final Weekday0

Swift的闭包,枚举,类和结构体

闭包(Closures) 使用过其它语言的应该对代码块并不陌生,Swift中的闭包与C,OC中的Block相似. 表示自包括的函数代码块.能够在代码中传递和使用. 而且能够捕获和存储上下文的变量以及常量值,Swift会为你进行捕获相关的内存操作. 上一篇文章提到的函数.也是一种特殊的闭包.详细在: 全局函数是有名字可是不会捕获不论什么值的闭包. 嵌套函数是有名字且能够捕获域内值的闭包. 闭包表达式是利用轻量级语法写的能够捕获上下文值的匿名闭包. 基本的语法 表达式的一般语法以及简化过程 上面罗列

【C#公共帮助类】枚举独特类

这个是枚举类,可能大家根据个人需求不同,不是很需要,但是跟着做那个项目的朋友会用到 我在这贴一下代码 1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.ComponentModel; 6 7 namespace Common.Enums 8 { 9 /// <summary> 10 /// 枚举独特类 11 /// add yu

用起来很方便的枚举扩展类

因项目需要花了点时间写了个枚举扩展类,详细内容如下: 枚举声明: public enum Status { [Description("邀请加入")] 邀请加入 = 1, [Description("拒绝邀请")] 拒绝邀请 = 2, [Description("申请加入")] 申请加入 = 3, [Description("拒绝加入")] 拒绝加入 = 4, [Description("同意加入")] 同

iOS开发——swift篇&amp;Swift新特性(二)函数、枚举、类与结构

函数.枚举.类与结构 可变参数 Swift的函数可以接受零个或多个指定类型的参数值,使用...来表示传递的是可变参数 func arithmeticMean(numbers: Double...) -> Double { var total: Double = 0 for number in numbers { total += number } return total / Double(numbers.count) } arithmeticMean(1, 2, 3, 4, 5) // ret

java对枚举的类反射使用

import java.lang.reflect.Method; import java.util.LinkedHashMap; import java.util.Map; import org.apache.commons.lang3.reflect.MethodUtils; /** * * <strong>功能:</strong>枚举使用工具 * <strong>作者:</strong>Gary Huang * <strong>日期:<