使用 const 关键字定义的变量,就是常量。一旦赋值,终身不可更改。
特点:必须在定义时就赋值,且在编译期间就确定了值。
const double PI = 3.14159;
// PI = 3.14; // 错误!你想逆天改命?编译器会打断你的腿!
const string SECT_NAME = "华山派";
还有一种叫 readonly(只读)。它比 const 稍微灵活一点点。
特点:可以在定义时赋值,也可以在构造函数(Constructor)里赋值。但出了构造函数,就不能改了。
class Hero
{
public readonly int BirthYear; // 出生年份
public Hero(int year)
{
BirthYear = year; // 这里是唯一可以修改它的机会!
}
public void GrowUp()
{
// BirthYear = 2000; // 错误!木板已经干了,改不了了。
}
}
const 是用来定义那些宇宙真理的(如数学常数)。
readonly 是用来定义那些出生后就不变的属性(如身份证号)。
MAX_VALUE),这是为了警示后人:只可远观,不可亵玩!
尝试编写一段代码:
const int MAX_LEVEL = 100;MAX_LEVEL = 99;编译器会抛出错误:
Error CS0131: The left-hand side of an assignment must be a variable, property or indexer
意思是:“赋值号左边必须是个变量,你给我个常量(石头)是想让我刻字吗?”