C#关键字 const与readonly

====const====

const关键字来声明某个常量字段或常量局部变量。常量字段和常量局部变量不是变量而且不能修改。常量可以为数字、布尔值、字符串或null引用。

常数声明的类型指定声明引入的成员类型。常量局部变量或常量字段的初始值设定项必须是一个可以隐式转换为目标类型的常量表达式。

常数表达式是编译时可被完全计算的表达式。因此,对于引用类型的常数,可能的值只能是string和null。

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

====readonly====

 readonly关键字是一个可在三个上下文中使用的修饰符:

  在字段声明中,readonly指示只能在声明期间或在同一类的构造函数中向字段赋值。

  在readonly struct定义中,readonly指示struct是不可变的。(c#7.2添加)

  在ref readonly方法返回中,readonly修饰符指示该方法返回一个引用,且不允许向该引用写入内容。(c#7.2添加)

====const 与 readonly====

  const字段只能在该字段的声明中初始化。可以在字段声明和任何构造函数中多次分配readonly字段。因此,根据所使用的构造函数,randonly字段可能具有不同的值。另外,虽然const字段是编译时常量,但readonly字段可用于运行时常量。

  public static readonly uint timeStamp = (uint)DateTime.Now.Ticks;

 

转载于:https://www.cnblogs.com/az4215/p/10811282.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值