品牌

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

时间:03-31 栏目:C语言技术

   浅谈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。

专业老师指导

赵老师

赵老师

从事IT教育培训十年有余,致力于帮助广大学子找到适合自己的专业

立即在线咨询

培训咨询客服

陈老师

陈老师

IT培训专业客服,用自己的真诚解决了无数学子的困惑

立即在线咨询

热门课程任你选,成长蜕变看的见

课程余量有限,即将截止报名!查看详情

抢到名额,您将获得

1、【北大青鸟武汉校区】“十三家校区通用课程体验卡一张”
2、现加微信,您将免费获得3天IT训练营的机会,另送价值6800的线上课程学习卡一张。

全国百余家校区

只为您方便就学

全国百余家校区 光谷校区

武汉市东湖开发区流芳园北路9号东一产业园内(武汉工程大学流芳校区旁)

点击预约
到校领取学习大礼包