北大青鸟光谷校区

北大青鸟光谷校区

  • 北大青鸟徐东校区
  • 北大青鸟光谷校区
  • 北大青鸟高新校区
  • 荆州青鸟之家
  • 襄阳青鸟之家

17740513250

百日千才

浅谈C#中的const和readonly修饰的字段-武汉北大青鸟技术文章

发布日期:2023-03-31来源:武汉北大青鸟武汉校区作者:武汉宏鹏

   浅谈C#中的const和readonly修饰的字段-武汉北大青鸟技术文章

    在C#中用const来修饰“常量”字段,用readonly来修饰“只读”字段,这两种类型的字段都有一个共同的特征就是“不能更改”。那么在同一个语言中,为什么用两个不同的关键字来修饰字段的“不可更改”性呢?其实这是完两种不同的机制。下表将详细讲解这两个看是相似其实不同的“只读”:

归纳点

const

readonly

意义

由const修饰的字段或局部变量的值是常数,值不能被修改

当字段声明包含readonly修饰符时,表明该字段为只读字段,值将不能修改

语法与样例

  1:classCircle

  2:{

  3:    publicconstfloatPI =3.14f;

  4:

  5:    privatefloatradius;

  6:    publicfloatRadius

  7:   

  {

  8:       

  get {returnthis.radius; }

  9:       

  set {this.radius =value; }

  10:   

  }

  11:

  12:    publicfloatGirth

  13:   

  {

  14:       

  get {returnthis.radius*2*PI;}

  15:   

  }

  16:}

  1:classStudent

  2:{

  3:    publicreadonlystringClassNo ="55";

  4:

  5:    publicStudent() { }

  6:

  7:    publicStudent(stringclassNo)

  8:   

  {

  9:        this.ClassNo = classNo;

  10:   

  }

  11:}

赋值时机

const字段有且有一次赋值的机会,那就是在常量字段声明时初始化。

readonly字段可以在声明或构造函数中初始化。因此,根据所使用的构造函数,readonly字段可能具有不同的值。

使用方式

类的const字段类似与类的静态字段,不能通过this来访问,只能通过类名来访问。

类的readonly字段是实例化字段,可以通过this来访问,访问方式与一般字段一样。

其他

const字段为编译时常数,其值将在编译时固定写入到程序集中

而readonly字段为运行时常数,可以在声明后,在同一类的不同构造函数中赋不同的值。

        想了解更多C语言技术请继续关注武汉北大青鸟官网,咨询热线:17740513250。

关闭

只为了方便您就学 北大青鸟光谷校区 北大青鸟武汉校区

武汉市洪山区珞喻路724号(地铁二号线光谷广场站F口出

Copyright (c) 2006-2023 武汉宏鹏教育咨询有限公司 版权所有 All Rights Reserved.