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);
}

如期,实现了所需要的目的,如图所示。

最新文章

  1. .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
  2. SpringMVC类型转换器、属性编辑器
  3. 逍遥安卓连接androidstudio
  4. Linux下安装与使用本地的perl模块
  5. Java基础教程
  6. LR11
  7. Poj OpenJudge 百练 1573 Robot Motion
  8. SQLServer与Oracle的数据同步(触发器trigger)
  9. redhat5.8无法进入图形界面
  10. HDU 4717The Moving Points warmup2 1002题(三分)
  11. photoSlider-html5原生js移动开发轮播图-相册滑动插件
  12. Truck History--poj1789
  13. CTO这点事(技术,业务,管理,情商,周期,趋势)转
  14. Linux中shell文件操作大全
  15. 从U盘安装win8系统
  16. hibernate4 spring3.2 事务不提交分析
  17. 反射实现 Data To Model
  18. Oracle分析函数——函数列表
  19. arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
  20. 02_python是一种什么语言?

热门文章

  1. Archlinux安装与出现的问题
  2. Mac-常用命令与快捷键
  3. 用缓冲技术OSCache 提高JSP应用的性能和稳定性
  4. Maven基本概念和操作
  5. 维生素D补充过多会中毒
  6. 不同环境下的mvn运行指令
  7. 3——PHP 简单运算符的使用
  8. 为什么MySQL分库分表后总存储大小变大了?
  9. Python——工厂模式
  10. Apache Druid 的集群设计与工作流程