c# const VS readonly

const

1、const能修饰局部变量和字段(常量字段)。const变量的值在编译时就确定了,不可以在运行时改变。

2、常量字段自动成为静态字段。因为不需要为每个对象实例都生成一个新的字段实例。但若将一个常量字段显示声明为static,会造成编译错误。

readonly

1、只能用于字段。它指出字段值只能从构造器中更改,或直接在声明时指定。即在声明时指定了一个readonly字段的值后,这个值可以在构造器中更改为一个新值。

2、readonly字段既可以是实例字段,也可以是静态字段。

3、readonly应用于数组时,其不可更改性是指数组元素的数量一旦确定就不能在更改(除了在构造器中可以更改)即一旦声明好了一个readonly数组,就不允许再用new运算符来创建同一个数组的新实例,无论新实例的数组长度是否有变。但是,数组中每个元素的值是可以改变的。

例:

class Example

{

public readonly int[] a=new int[6] {1,2,3,4,5,6};

public void fun()

{

a[5]=10;//允许

a=new int[3];//不允许

a=new int[8];// 不允许

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值