视频讲解
通过对前面知识的学习,我们知道了变量是随时可以改变值的量,那么,在遇到不允许改变值的情况时,该怎么办呢?这就是本节要讲解的常量。
常量就是程序运行过程中,值不能改变的量,比如现实生活中的居民身份证号码、数学运算中的π值等,这些都是不会发生改变的,它们都可以定义为常量。常量可以区分为不同的类型,比如98,368是整型常量,3.14,0.25是实数常量,即浮点类型的常量,m、r是字符常量。
常量主要有两种,分别是const常量和readonly常量,下面分别对这两种常量进行讲解。
在C#中提到常量,通常指的是const常量。const常量也叫静态常量,它在编译时就已经确定了值。const常量的值必须在声明时就进行初始化,而且之后不可以再进行更改。
例如,声明一个正确的const常量,同时再声明一个错误的const常量,以便读者对比参考,代码如下:
readonly常量是一种特殊的常量,也称为动态常量,从字面理解上看,readonly常量可以进行动态赋值,但需要注意的是,这里的动态赋值是有条件的,它只能在构造函数中进行赋值,例如下面的代码:
如果要在构造函数以外的位置修改readonly常量的值,比如,在Main方法中进行修改,代码如下:
这时再运行程序,将会出现如图3.14所示的错误提示。
图3.14 试图在构造函数以外的位置修改readonly常量值的错误提示
const常量与readonly常量的主要区别如下: