3.3 声明和使用常量;3.4 术语

http://book.2cto.com/201210/6837.html

教学录像:光盘\mr\video\第3章\声明和使用常量.exe

C#提供了两种类型的常量,一种是用const关键字声明,另一种是用readonly关键字声明。在数学上圆周率p的值为3.1415926...,这个值不会随着外界环境而改变。如果在代码中间接地更改了p的值,程序运行会出现未知的错误;如果将p的值设为常量,在某种程度上会增加程序的健壮性。

常量就是其值固定不变的量,而且常量的值在编译时就已经确定了。常量的类型只能为下列类型之一:sbyte、byte、short、ushort、int、uint、long、ulong、char、float、double、decimal、bool、string等。使用关键字const来创建常量,并且在创建常量时必须设置它的初始值。

在C#中,const常量是在编译时设置其值并且永远不能更改其值的字段,在对程序进行编译的时候,编译器会把所有const常量替换为常数。

【例3.18】声明一个正确的常量,同时再声明一个错误的常量,以便读者对比参考,代码如下。

01   const double PI = 3.1415926;   //正确的声明方法
02   const int MyInt;     //错误:定义常量时没有初始化

注意:常量的值在编译时就已经确定了,C#中使用关键字const来声明常量,而且在声明常量时必须对其进行初始化。程序中使用常量时,实际不需要为常量分配内存,可以在程序集元数据中提取常量的值。

在C#中使用readonly关键字来声明只读字段,只读的字段与常量的用法很相似,都是为程序提供一个只读的值,不同之处在于,readonly字段无须在编译时初始化其值,可以在类型的构造方法中初始化readonly的值,这样readonly的值可以被写入一次。

【例3.19】创建一个控制台应用程序,定义一个readonly只读字段并使用类的构造方法对readonly字段初始化,代码如下。(实例位置:光盘\mr\example\第3章\3.19)

代码位置:光盘\mr\example\第3章\3.19\Test09\Test09\Program.cs

01   class Program
02   {
03       static void Main(string[] args)
04       {
05        Test test = new Test(22);    //创建类的实例
06           test.show();     //调用show方法
07           Console.ReadLine();
08       }
09       class Test
10       {
11           public Test(int age)  //在类的构造方法中初始化只读字段Age
12           {
13               this.Age = age;  //初始化年龄
14           }
15           readonly int Age;   //定义只读的字段
16           public void show()
17           {
18               Console.WriteLine("年龄: {0}",Age);
19           }
20       }
21   }

本例运行结果为“年龄:22”。

试一试:修改上面的实例,再添加一个只读字段Name,然后在构造方法Test中初始化其值。

上机练习

上机练习5   定义常量计算圆的周长

创建一个控制台应用程序,定义一个常量字段pi赋值为3.14,根据圆的周长公式计算圆的周长,当圆的半径为20时,周长为125.663704,如图3.13所示。


 

上机练习6   同时使用常量和只读字段输出信息

要求定义一个类,在该类中定义一个描述国籍的常量,其常量值为“中国”,定义一个描述姓名的readonly字段,并在该类的构造方法中初始化其值,本例运行效果如图3.14所示。

3.4 术语



(1)值类型的变量本身直接存储数据,而引用类型则存储实际数据的引用。

(2)枚举类型是一种独特的值类型,它用于声明一组具有相同性质的常量。

(3)类型转换就是将一种类型转换成另一种类型,转换可以是隐式转换或者显式转换。

(4)将值类型转换为引用类型的过程叫做装箱。

(5)将引用类型转换为值类型的过程叫做拆箱。

(6)变量本身被用来存储特定类型的数据,可以根据需要随时改变变量中所存储的数据值。

(7)常量就是其值固定不变的量,而且常量的值在编译时就已经确定了。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值