首页 > 其他分享 >枚举

枚举

时间:2024-04-03 14:33:05浏览次数:22  
标签:objs string DescriptionAttribute field 枚举 Description

// 枚举
public enum enumStudent
{
    [Description("性别")]
    sex = 0,
    [Description("年龄")]
    age = 1,
}
 
// 获取方法
public string GetDescriptionByEnum(Enum enumValue)
{
    string value = enumValue.ToString();
    System.Reflection.FieldInfo field = enumValue.GetType().GetField(value);
    object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);    //获取描述属性
    if (objs.Length == 0)    //当描述属性没有时,直接返回名称
        return value;
    DescriptionAttribute descriptionAttribute = (DescriptionAttribute)objs[0];
    return descriptionAttribute.Description;
}
 
 
// 调用示例
GetDescriptionByEnum(enumStudent.age) → 年龄
 
 
public T GetEnumByDescription<T>(string description) where T : Enum
{
    System.Reflection.FieldInfo[] fields = typeof(T).GetFields();
    foreach(System.Reflection.FieldInfo field in fields)
    {
        object[] objs = field.GetCustomAttributes(typeof(DescriptionAttribute), false);    //获取描述属性
        if (objs.Length > 0 && (objs[0] as DescriptionAttribute).Description == description)
        {
            return (T)field.GetValue(null);
        }
    }
 
    throw new ArgumentException(string.Format("{0} 未能找到对应的枚举.", description), "Description");
}
 
// 调用示例

 

标签:objs,string,DescriptionAttribute,field,枚举,Description
From: https://www.cnblogs.com/xiaobaicai12138/p/18112641

相关文章

  • 【洛谷 P8695】[蓝桥杯 2019 国 AC] 轨道炮 题解(映射+模拟+暴力枚举+桶排序)
    [蓝桥杯2019国AC]轨道炮题目描述小明在玩一款战争游戏。地图上一共有NNN个敌方单位,可以看作2D平面上的点。其中第i......
  • mybatis-plus使用枚举
    定义枚举类@GetterpublicenumSexEnum{MALE(1,"男"),FEMALE(2,"女");@EnumValue//表示会把这个值存入数据库privateintindex;@JsonValue//json序列化时使用这个属性privateStringname;SexEnum(inti,Stringname){this.in......
  • JPA不识别MySQL的枚举类型
    1枚举好用吗?数据字典型字段,枚举比Integer好:限定值,只能赋值枚举的那几个实例,不能像Integer随便输,保存和查询的时候特别有用含义明确,使用时不需要去查数据字典显示值跟存储值直接映射,不需要手动转换,比如1在页面上显示为启用,0显示禁用,枚举定义好可以直接显示基于enum可以添加......
  • 枚举类和注解
    目录一、枚举类的使用1.1、枚举类的理解1.2、自定义枚举类1.3、使用enum关键字定义枚举类1.4、Enum类中的常用方法1.5、使用enum关键字定义的枚举类实现接口二、注解的使用2.1、注解的理解2.2、Annotation的使用示例2.3、如何自定义注解2.4、jdk中4个基本的元注解的使用......
  • UE4 c++ 通过枚举寻找DataTable中的数据
    DataTable中的数据DataTable中每一行数据是一个结构体在C++代码中定义结构体,然后可以在蓝图中可以创建以此结构体为单元的DataTable枚举变量定义一个头文件来存储枚举变量,然后可以在要使用的文件中利用MyEnumPtr=FindObject<UEnum>(ANY_PACKAGE,TEXT("EGridShapEnum"),tr......
  • C++枚举类型
    枚举类型枚举类型使我们可以将一组整型常量组织在一起。和类一样,每个枚举类型定义了一种新的类型。枚举属于字面值常量类型。C++包含两种枚举:限定作用域的和不限定作用域的。限定作用域的枚举类型C++11新标准引入了限定作用域的枚举类型。定义限定作用域的枚举类型的一......
  • 【wpf】 枚举转bool转换器
    ///<summary>///枚举转bool///</summary>publicclassEnum2BooleanConverter:IValueConverter{publicobjectConvert(objectvalue,TypetargetType,objectparameter,CultureInfoculture){returnva......
  • JAVA面向对象高级三:枚举类认识 枚举引用场景
    1.枚举:特殊的类  抽象枚举,枚举类实现抽象方法。 packagecom.itheima.枚举;publicclasstest{publicstaticvoidmain(String[]args){//目标:认识枚举Aa1=A.x;System.out.println(a1);//1.枚举类的构造器是私有的,不......
  • C语言(结构体,联合体,枚举的讲解)
    这期我们来讲解结构体,联合体,以及枚举的讲解,首先我们从概念开始一步一步的了解。1,结构体1.1概念C语言中的结构体是一种用户自定义的数据类型,它允许你将不同类型的变量组合在一起,从而形成一个新的数据类型。结构体在C语言中非常有用,可以用于表示复杂的数据结构,比如学生信息......
  • Array Destruction(枚举暴力,stl的合理选择)
    Youfoundauselessarray aa of 2n2n positiveintegers.Youhaverealizedthatyouactuallydon'tneedthisarray,soyoudecidedtothrowoutallelementsof aa.Itcouldhavebeenaneasytask,butitturnedoutthatyoushouldfollowsomerules:I......