C#读取静态类常量属性和值
2024-09-07 00:23:09
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);
}
如期,实现了所需要的目的,如图所示。
最新文章
- .NET平台开源项目速览(15)文档数据库RavenDB-介绍与初体验
- SpringMVC类型转换器、属性编辑器
- 逍遥安卓连接androidstudio
- Linux下安装与使用本地的perl模块
- Java基础教程
- LR11
- Poj OpenJudge 百练 1573 Robot Motion
- SQLServer与Oracle的数据同步(触发器trigger)
- redhat5.8无法进入图形界面
- HDU 4717The Moving Points warmup2 1002题(三分)
- photoSlider-html5原生js移动开发轮播图-相册滑动插件
- Truck History--poj1789
- CTO这点事(技术,业务,管理,情商,周期,趋势)转
- Linux中shell文件操作大全
- 从U盘安装win8系统
- hibernate4 spring3.2 事务不提交分析
- 反射实现 Data To Model
- Oracle分析函数——函数列表
- arcgis api 3.x for js 入门开发系列十叠加 SHP 图层(附源码下载)
- 02_python是一种什么语言?