« 上一篇下一篇 »

简述C#中的常量

常量就是程序运行期间值不发生变化的量,变量就是程序运行期间值可以发生变化的量。无论是常量还是变量,都属于某种确定的数据类型

常量有两种形式,直接出现在语句中的数值常量和符号常量。例如:
float fc=6.0F;
string str=“李元复”;
float fd=6.0F+5.0F;

上序语句中的6.0F和“李元复”都是数值常量,6.0F+5.0F是数值常量构成的表达式,代表一个数值,也是数值常量。

符号常量的定义形式如下:const 数据类型 名称=表达式;

其中,表达式为数值常量。例如:const double pi=3.14159;

声明符号常量pi后,使用3.14159时可用名称pi来替换,相当于为3.1415926取了名字,所以这种形式的常量称为符号常量。例如:
const double pi=3.14159;
double r=2;
double area=pi*r*;

当然也可以在程序代码中直接出现数值。例如 :
double area=3.14159*r*r;

当程序中需要多次使用数值3.14159时,用符号常量的形式书写更方便。符号常量定义之后,可多次使用,需要修改时,只修改其定义即可,既提高了程序员的可修改性,也是程序员的可读性提高。如果要将3.14159修改为3.1415926,使用符号常量的形式只修改其定义即可,而直接使用数值的程序中则需要多处修改。

由于编译器在编译时将符号化的常量替换为其内容,所以,直接出现的常量与富豪化的常量本质上是一样的,二者的区别在于符号化常量显示指明其数据类型,而直接出现的常量,其数据类型由编译器根据规则确定。编译时计算的常量均为简单类型常量的表达式。

对于常量来说,无论是数值常量还是符号常量,在编译时必须可确定其值,然后将常量的值直接嵌入到MSIL代码中,所以常量在运行时不需要分配任何内存,进而也无法获取常量的地址。

« 上一篇下一篇 »