Unity enum 枚举与描述的互转

通过枚举获取对应的描述

通过描述获取对应的枚举

 public enum RunTimePosition
    {
        /// <summary>
        /// 列车长
        /// </summary>
        [Description("列车长")] LieCheZhang = 1,
        
        /// <summary>
        /// 列车员1-男
        /// </summary>
        [Description("列车员男兼安全员")] LieCheYuanNan = 2,

        /// <summary>
        /// 列车员2-女
        /// </summary>
        [Description("列车员2-女")] LieCheYuan = 3,

        /// <summary>
        /// 列车员3-女
        /// </summary>
        [Description("列车员3-女")] LieCheYuan1 = 4,
    }

        using System.Reflection;
        using System.ComponentModel;
        /// <summary>
        /// // *** 通过枚举获取描述的名称
        /// </summary>
        public static string GetDescription(Enum value)
        {
            FieldInfo fieldInfo = value.GetType().GetField(value.ToString());
            DescriptionAttribute descAttr = Attribute.GetCustomAttribute(fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
            return (descAttr == null) ? value.ToString() : descAttr.Description;
        }
        /// <summary>
        /// // *** 根据描述获取枚举
        /// </summary>
        public static T GetEnumValue<T>(string name) where T : Enum
        {
            Array array = Enum.GetValues(typeof(T));
            foreach (T val in array)
            {
                if (string.Equals(GetDescription(val), name))
                {
                    return val;
                }
            }
            return default;
        }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity中,枚举类型(enum)用于定义一组相关的符号常量,以便在程序运行时从编译时已经设定的固定数目的选择中做出决定。枚举类型的声明使用enum关键字。在Unity中,枚举类型通常用于定义一组特定的选项,例如游戏中的角色类型、道具类型等。 在给定的引用\[1\]中,展示了在Unity中使用枚举类型的示例代码。在这个示例中,定义了一个名为Fruit的枚举类型,包含了三个选项:Apple、Pear和Banana。通过使用Enum.GetNames和Enum.GetValues方法,可以分别获取枚举类型的名称和值,并进行遍历和输出。 在Unity中,使用枚举类型可以方便地管理和使用一组固定的选项,提高代码的可读性和可维护性。通过枚举类型,可以避免使用魔法数字或字符串,使代码更加清晰和易于理解。 总结起来,Unity中的枚举类型(enum)用于定义一组相关的符号常量,以便在程序运行时从编译时已经设定的固定数目的选择中做出决定。它可以提高代码的可读性和可维护性,使代码更加清晰和易于理解。 #### 引用[.reference_title] - *1* [Unity 基础 之 实现枚举enum/Enum)遍历的三种简单方法(foreach/for)](https://blog.csdn.net/u014361280/article/details/115945198)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [Unity 基础 之 Enum(enum) 枚举 的简单介绍,和枚举变量同时赋值多个值,并且分解枚举变量包含多个值](https://blog.csdn.net/u014361280/article/details/114587433)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值