C#读取静态类常量属性和值的实例讲解
作者:DotNet之路 发布时间:2022-04-15 16:37:34
标签: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);
}
如期,实现了所需要的目的,如图所示。
来源:https://www.cnblogs.com/lonelyxmas/p/12549335.html


猜你喜欢
- 遇到的问题解决方法win7:insert键切回win10:fn+insert切回Mac:fn+i 切回来源:https://blog.csd
- 一、前言又见面了哈,今天为大家介绍时钟、钟表的实现方法教程。实现的方法有很多,这里只是提供了一个思路,本着抛砖引玉的心态,希望能和大家共同学
- 本文实例为大家分享了android实现倒计时动态圈的具体代码,供大家参考,具体内容如下效果是这样,没动图:布局:<LinearLayo
- 概念Drawable表示一种可以在Canvas上进行绘制的抽象的概念,它有很多种,常见的如颜色和图片都可以是一个Drawable。优点首先,
- 通过GPS取得的是一个Location类型的经纬度, 可以转换为两个Double 纬度和经度.纬度: 23.223871812820435纬
- WebSocket介绍WebSocket是HTML5开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。在WebSocket API中
- 一、递归的思路一个方法在执行时,调用自身被称为“递归”。递归相当于数学归纳法,有一个起始条件,有一个递推公式。递归可以分为:单路递归和多路递
- 目录 - JWT- JWT与其它的区别OAuthCookie/Session Auth- JWT的优点- 认证- JWT的缺点-
- 定义:结点的带权路径长度为从该结点到树根之间的路径长度与结点上权的乘积。树的带权路径长度为树中所有叶子结点的带权路径长度之和。假设有n个权值
- 上篇文章介绍了Spring boot初级教程:spring boot(一):入门篇,方便大家快速入门、了解实践Spring boot特性;本
- 1、如何解决服务之间的通信问题?[1]HTTP REST方式 使用http协议进行数据传递 json格式数据[2]RPC方式 远程过程调用
- 前言:在我们购买商品或其他操作的时候,这时候微信公众号会推送相关模版消息。接下来简单介绍开发流程:(本文以订单推送为例)首先在测试号新建模版
- DSLDomain-specific language: 一种专注于某一领域,仅针对部分表达方式的计算机编程语言。特点方法链 Method
- Java中的Static class详解Java中的类可以是static吗?答案是可以。在Java中我们可以有静态实例变量、静态
- 此项目使用了OpenCVSharp加载本地摄像头,多个摄像头支持切换展示,也可以展示rtsp地址。使用NuGet如下:代码如下一、创建Mai
- C语言 MD5源码md5c.h:/* POINTER defines a generic pointer type */ typedef u
- C#调用C++DLL传递结构体数组的终极解决方案在项目开发时,要调用C++封装的DLL,普通的类型C#上一般都对应,只要用DllImport
- Object是所有类的父类,也就是说java中所有的类都是直接或者间接继承自Object类。比如你随便创建一个classA,虽然没有明说,但
- 本文实例讲述了C#实现计算一个点围绕另一个点旋转指定弧度后坐标值的方法。分享给大家供大家参考。具体如下:1.示例图P(x1,y1)以点A(a
- 前言我在上一篇文章聊了Redisson的分布式锁,这次继续来聊聊Redisson的公平锁。下面是官方原话:它保证了当多个Redisson客户