c# - 按值获取常量名称
问题描述
我有一个带常量的类。我有一些字符串,它可以与其中一个常量的名称相同或不同。
因此,具有常量的类 ConstClass 具有一些公共常量,例如 const1、const2、const3 ......
public static class ConstClass
{
public const string Const1 = "const1";
public const string Const2 = "const2";
public const string Const3 = "const3";
}
是否有可能通过价值获得联系?
所以“const1”值的名称为“Const1”
我知道如何获得相反的方式......
string customStr = "const1";
if ((typeof (ConstClass)).GetField(customStr) != null)
{
string value = (string)typeof(ConstClass).GetField(customStr).GetValue(null);
}
解决方案
简单的解决方案。
例子:
public static class Names
{
public const string name1 = "Name 01";
public const string name2 = "Name 02";
public static string GetNames(string code)
{
foreach (var field in typeof(Names).GetFields())
{
if ((string)field.GetValue(null) == code)
return field.Name.ToString();
}
return "";
}
}
以下将打印“name1”
string result = Names.GetNames("Name 01");
Console.WriteLine(result )
推荐阅读
- google-maps - Google Map UI Experience 在 api 中不可用(边框,样式)?
- ios - 从图像 url 下载图像方面,URLSession 与 GCD 有什么区别?
- xslt-2.0 - 如何控制表中多行中的字符串值流。值用逗号分隔,并带有点
- html - 如何根据用户偏好在 webview 上实现 html 的动态样式
- hyperledger-fabric - 如何将用户证书共享给客户端
- php - 在 laravel 和 vuejs 插入数据库 + 日志文件时出现 500 错误
- javascript-engine - chrome的控制台是Javascript引擎吗?
- grafana - 在 Grafana 中可视化正在运行的服务
- python - 我想在浏览时删除或添加列表元素
- python - 这个 lambda 函数如何检索它的 x 值?