Const 和readonly 的区别

 const是一个关键字,用于字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。使用const在一定程度上可以提高程序的安全性和可靠性.说道这里,大家可能都会想到readonly关键字,其修饰的变量也是只读的,不能被修改.那么这两者有什么区别呢?

在介绍之前,还是先看例子:

常类型是指使用const说明的类型,定义或说明常类型时必须进行初始化,且不能再被赋值:

1.const int i;//报错:常量字段要求提供一个值;

2.    const int i=3;
        i=5;//报错:赋值号左边必须是变量、属性或索引器

3. readonly  int a;不会报错

常对象定义:

const  类名 对象名[(参数列表)];

或 类名 const  对象名[(参数列表)];

如:

 class A

{

private int x,y;

public A(int i,int j){x=i;y=j}

}

const A a1(3,4);  A class a2(5,6);

a1和a2都是常对象,不能被更新;

区别:

readonly 关键字与 const 关键字不同。const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly 字段可能具有不同的值。另外,const 字段是编译时常数,而 readonly 字段可用于运行时常数,如下面的代码行所示:public static readonly uint l1 = (uint)DateTime.Now.Ticks;

注意:

 不允许在常数声明中使用 static 修饰符。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值