📅  最后修改于: 2023-12-03 14:57:17.006000             🧑  作者: Mango
在 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# 中的常量列表的方法。