C#读取静态类常量属性和值的实例讲解
1.背景
最近项目中有一个需求需要从用户输入的值找到该值随对应的名字,由于其它模块已经定义了一份名字到值的一组常量,所以想借用该定义。
2.实现
实现的思路是采用C#支持的反射。
首先,给出静态类中的常量属性定义示例如下。
public static class FruitCode { public const int Apple = 0x00080020; public const int Banana = 0x00080021; public const int Orange = 0x00080022; }
其次,编写提取该静态类常量Name和值的方法,如下所示。
Type t = typeof(FruitCode); FieldInfo[] fis = t.GetFields(); // 注意,这里不能有任何选项,否则将无法获取到const常量 Dictionary<int, string> dicFruitCode = new Dictionary<int, string>(); foreach (var fieldInfo in fis) { var codeValue = fieldInfo.GetRawConstantValue(); dicFruitCode.Add(Convert.ToInt32(codeValue), fieldInfo.Name.ToString()); } foreach(var item in dicFruitCode) { Console.WriteLine("FieldName:{0}={1}",item.Value,item.Key); }
如期,实现了所需要的目的,如图所示。
到此这篇关于C#读取静态类常量属性和值的实例讲解的文章就介绍到这了,更多相关C#读取静态类常量属性和值内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
C#版的 Escape() 和 Unescape() 函数分享
从网上看到两个方法, C# 版的 Escape() 和 Unescape(),收藏下。2011-05-05基于NET Core 的Nuget包制作、发布和运用流程解析(完整过程)
这篇文章主要介绍了基于NET Core 的Nuget包制作、发布和运用流程,本文通过图文并茂的形式给大家介绍了Nuget包制作过程,感兴趣的朋友跟随小编一起看看吧2022-02-02深入IComparable与IComparer的排序实例详解
本篇文章是对IComparable与IComparer的排序实例进行了详细的分析介绍,需要的朋友参考下2013-06-06解决C#中Linq GroupBy 和OrderBy失效的方法
最近发现了一个问题,在服务器端的Linq GroupBy 和OrderBy居然不管用,后来终于解决了所以现在分享给大家,有需要的朋友们可以参考借鉴。2016-09-09
最新评论