首页 > 编程语言 >C# 枚举的一些工具方法

C# 枚举的一些工具方法

时间:2023-05-19 10:55:41浏览次数:35  
标签:attrDesc description Dictionary C# field 枚举 enumDescDict 工具

1.获取枚举的描述字典

        public static Dictionary<string, string> GetEnumDescriptionDict(Type t)
        {
            Dictionary<string, string> enumDescDict = new ();
            if (!t.IsEnum)
            {
                return enumDescDict;
            }
            
            FieldInfo[] fields = t.GetFields();

            foreach (FieldInfo field in fields)
            {
                if (field.FieldType.IsEnum)
                {
                    string description = field.GetXmlDocsSummary();
                    if (string.IsNullOrEmpty(description))
                    {
                        var attrDesc = field.GetCustomAttribute<DescriptionAttribute>();
                        if (attrDesc != null)
                            description = attrDesc.Description;
                    }
                    enumDescDict.Add(field.Name, description);
                }
            }
            return enumDescDict;
        }

标签:attrDesc,description,Dictionary,C#,field,枚举,enumDescDict,工具
From: https://www.cnblogs.com/fanqisoft/p/17414293.html

相关文章

  • 双检锁(DCL)实现懒汉单例模式
    publicclassSingleton{privatevolatilestaticSingletonobj;publicSingleton(){}publicgetSingleton(){if(singleton==null){synchronized(Singleton.class){if(singleton==null){obj......
  • SpringBoot单元测试只${spring.profiles.active}异常
    在使用SpringBoot进行单元测试时,如果遇到「couldnotresolveplaceholder'spring.profiles.active'」的错误提示,通常是因为你在测试用例中使用了@ActiveProfiles注解来激活某些特定的配置文件,但是你的项目中并没有这些指定的配置文件。为了解决这个问题,你需要检查你的测试......
  • vue component:is 组件切换
    <template><Child1/><Child2/><component:is="currentComp"></component><el-button@click="compChange">切换组件</el-button></template><scriptsetup>import{shallo......
  • 二刷Leetcode-Days06
    二叉树:/***迭代法实现中序前序后序遍历*@paramroot*@return*/publicList<Integer>preorderTraversalIterator(TreeNoderoot){List<Integer>result=newArrayList<>();if(root==null){ret......
  • distcp任务超时(Time out after 300 secs)的原因及优化方案
    distcp使用MapReduce执行数据复制操作时也可能会出现超时的情况,其可能的原因与普通MapReduce任务相似,包括以下几点:数据量过大:如果您的复制任务的数据量非常大,MapReduce任务可能需要更多时间来处理,从而导致超时。硬件不足:如果您的硬件资源不足以支持MapReduce任务,例如内存、C......
  • C#中的Task.CompletedTask和Task.Result学习
    在学习C#中的Task方法时,可以知道Task启动一个异步线程方法可以用Task.Run()进行,具体可以参看博客 https://www.cnblogs.com/yaosj/p/10342883.html和 https://www.cnblogs.com/wynblogscc/p/15138423.html但是,在有些返回类型是Task的方法中,可以在不进行异步的情况下计算结果.......
  • 报表控件FastReport VCL v2023.2 - 将Delphi 产品整合到单一系统
    FastReport 是功能齐全的报表控件,可以帮助开发者可以快速并高效地为.NET,VCL,COM,ActiveX应用程序添加报表支持,由于其独特的编程原则,现在已经成为了Delphi平台最优秀的报表控件,支持将编程开发中的报表信息输出为TXT、PDF等多种文件格式,是编程开发人员必备的报表工具。FastReportVC......
  • MobTech 秒验|助力预热618
    618年中大促是电商行业的一场重要的购物节,各大平台和品牌都会推出各种优惠活动和营销策略,吸引消费者的注意力和购买力。在这个竞争激烈的市场环境中,如何提高用户的注册和登录体验,降低验证成本,增加用户的信任感和忠诚度,是每个商家都需要考虑的问题。秒验的优势秒验整合了三大运营商......
  • LKT6850安全MCU(二):系统架构
    LKT6850主系统由以下部分构成:两个驱动单元ARMCortexM0内核和系统总线(S-bus)DMA总线三个被动单元内部内部闪存存储器AHB到APB的桥(AHB2APBx),它连接所有的APB设备这些都是通过一个多级的AHB总线构架相互连接的。系统结构系统总线该总线连接ARMCortexM0内核的系统总线到总线矩阵......
  • Scrum进入疲惫期?三点帮你走出困境
    《敏捷软件开发》中提到: “Scrum可以帮助团队更好地应对变化和不确定性,以及更快地响应客户需求。通过持续的反馈和改进,Scrum可以提高团队的适应性和灵活性。”然而,有些团队在使用Scrum后,却出现了工作任务越来越多、加班越来越严重、迭代总是完不成的情况。 明明Scrum能提高......