C#关键字 const与readonly

Posted az4215

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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字段是编译时常量,但randonly字段可用于运行时常量。

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

 

以上是关于C#关键字 const与readonly的主要内容,如果未能解决你的问题,请参考以下文章

[c#] const 与 readonly

c#基础知识--常量(const),只读字段(readonly)

readonly const关键字

const & readonly 关键字

C#庖丁解牛之const与readonly

c#中const与readonly区别