首页 > 解决方案 > 按值获取常量名称

问题描述

我有一个带常量的类。我有一些字符串,它可以与其中一个常量的名称相同或不同。

因此,具有常量的类 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);
}

标签: c#

解决方案


简单的解决方案。

例子:

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 )

推荐阅读