类和结构可以将常数声明为成员。常数是在编译时已知并保持不变的值。(若要创建在运行时初始化的常数值,请使用 readonly 关键字。)常数被声明为字段,声明时在字段的类型前面使用 const 关键字。常数必须在声明时初始化。例如:

C# CopyCode image复制代码
class Calendar1
{
    public const int months = 12;
}

在此示例中,常数 months 将始终为 12,不能更改 - 即使是该类自身也不能更改它。常数必须属于整型(sbytebyteshortushortintuintlongulongcharfloatdoubledecimalboolstring)、枚举或对 null 的引用。

可以同时声明多个相同类型的常数,例如:

C# CopyCode image复制代码
class Calendar2
{
    const int months = 12, weeks = 52, days = 365;
}

只要不会造成循环引用,用于初始化一个常数的表达式就可以引用另一个常数。例如:

C# CopyCode image复制代码
class Calendar3
{
    const int months = 12;
    const int weeks = 52;
    const int days = 365;

    const double daysPerWeek = days / weeks;
    const double daysPerMonth = days / months;
}

常数可标记为 publicprivateprotectedinternalprotectedinternal。这些访问修饰符定义类的用户访问该常数的方式。有关更多信息,请参见访问修饰符(C# 编程指南)

尽管常数不能使用 static 关键字,但可以像访问静态字段一样访问常数。未包含在定义常数的类中的表达式必须使用类名、一个句点和常数名来访问该常数。例如:

C# CopyCode image复制代码
int birthstones = Calendar.months;

Expand 图像C# 语言规范

Expand image请参见