📜  获取类 c# 中的常量列表(1)

📅  最后修改于: 2023-12-03 14:57:17.006000             🧑  作者: Mango

获取类 C# 中的常量列表

在 C# 中,常量是指一旦定义后就无法更改其值的变量。常量可以在编译时或运行时计算。在一个类中,常量可以通过关键字 const 来定义。若要获取类中的常量列表,可以使用反射机制,具体如下:

using System;
using System.Reflection;

public static class ConstantsUtility
{
    public static void PrintConstants(Type type)
    {
        Console.WriteLine("The constants defined in {0} are:", type.Name);
        FieldInfo[] fields = type.GetFields(BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy);
        foreach (FieldInfo fieldInfo in fields)
        {
            if (fieldInfo.IsLiteral && !fieldInfo.IsInitOnly)
            {
                Console.WriteLine("{0} = {1}", fieldInfo.Name, fieldInfo.GetRawConstantValue());
            }
        }
    }
}

使用该方法,我们传入一个类的类型,它将会输出该类中所有常量的名称和值。注意,由于常量是静态的,因此必须使用 BindingFlags.Static 来获取常量。此外,我们还需要使用 BindingFlags.FlattenHierarchy 来获取该类和其基类中的所有常量。

下面是示例代码:

public class MyConstants
{
    public const double PI = 3.14;
    public const string HelloWorld = "Hello, World!";
    public const int Answer = 42;
}

public static class Program
{
    public static void Main(string[] args)
    {
        ConstantsUtility.PrintConstants(typeof(MyConstants));
    }
}

输出结果如下:

The constants defined in MyConstants are:
PI = 3.14
HelloWorld = Hello, World!
Answer = 42

以上就是获取类 C# 中的常量列表的方法。