参见《C#高级编程》第四版
常量
· 常量必须在声明时初始化。指定了其值后,就不能再修改了。
· 常量的值必须能在编译时用于计算。因此,不能用从一个变量中提取的值来初始化常量。如果需要这么做,应使用只读字段。
const int a = b + 1; // error
· 常量总是静态的。但注意,不必也不允许在常量声明中包含修饰符static。
class Demo
{
public const int A = 99;
}
class Program
{
static void Main(string[] args)
{
int x = Demo.A;
x++;
}
}
· 常量只能用于基本类型,不能用在类和结构上。举个简单的例子,如果你要编译下边一段代码会出现错误:
public static class SangoConstants
{
public const DateTime STARTING_DATE = new DateTime(220, 1, 1);
}
Error 1 The type 'System.DateTime' cannot be declared const
如果想有一个DateTime类型的常量,可以(1)采用string(“01/01/220”) 作常量; (2)用只读变量(参见另一篇C# 只读字段)