1. readonly

    1. MSDN定义:readonly 关键字是可以在字段上使用的修饰符。当字段声明包括 readonly 修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中。
    2. readonly修饰的字段只能在两个地方对其赋值,第一个是初始化字段的时候,第二个是构造函数中。
       1 class Age
       2     {
       3         //第一个可赋值的地方
       4         //private readonly int _year = 20;
       5         readonly int _year;
       6
       7         Age(int year)
       8         {
       9             //第二个可赋值的地方
      10             _year = year;
      11         }
      12         void ChangeYear()
      13         {
      14             //除了上面两除,其他方式都不能改变它的值
      15             //编译不能通过
      16             _year = 1967;
      17         }
      18     }

    3. readonly修饰数组时,使数组长度不可改变,数组中每个元素的值是可以改变的。
  2. const
    1. MSDN定义:const 关键字用于修改字段或局部变量的声明。它指定字段或局部变量的值是常数,不能被修改。
    2. const 修饰的字段只能在初始化字段的地方为其赋值。
    3. const定义的常量在程序运行过程中只有一份拷贝,省内存。
       1     class Age
       2     {
       3         //唯一可赋值的地方
       4         const int _year = 20;
       5
       6         Age(int year)
       7         {
       8             //编译不能通过
       9             _year = year;
      10         }
      11         void ChangeYear()
      12         {
      13             //编译不能通过
      14             _year = 1967;
      15         }
      16     }

  3. 区别:
    1. const 字段只能在该字段的声明中初始化。readonly 字段可以在声明或构造函数中初始化。
    2. 由于readonly字段可在构造函数中赋值,在不同的实例中可以有不同的值。而const字段相当于常量,在不同的实例中具有相同的值。
    3. 另外,const 字段是编译时常量,而 readonly 字段(配合static修饰符)可用于运行时常量

转载于:https://www.cnblogs.com/David-Huang/p/3856448.html

readonly 与 const相关推荐

  1. readonly和const的区别

    readonly与const的区别 1.const常量在声明的同时必须赋值,readonly在声明时可以不赋值 2.readonly只能在声明时或在构造方法中赋值(readonly的成员变量可以根据调 ...

  2. C# static readonly 与 const 的区别

    static readonly 与 const 的区别: const 表达式的值是在编译时形成的: static readonly 表达式的值直到程序运行时才形成: 转载于:https://www.c ...

  3. Readonly 与Const

    Readonly 与Const readonly 关键字是可以在字段上使用的修饰符.当字段声明包括 readonly修饰符时,该声明引入的字段赋值只能作为声明的一部分出现,或者出现在同一类的构造函数中 ...

  4. readonly和const比较

    readonly和const比较 前天犯了个低级错误,是关于readonly的,总结了一下: C#的readonly关键字只能在字段上面使用 public readonly TcpClient cli ...

  5. C#中的static、readonly与const的比较

    C#中有两种常量类型,分别为readonly(运行时常量)与const(编译时常量),本文将就这两种类型的不同特性进行比较并说明各自的适用场景. 工作原理     readonly为运行时常量,程序运 ...

  6. readonly 与 const 区别

    今天遇到一道面试题,const和readonly区别,我答得有些糊涂,在msdn上查找了下,msdn解释如下: readonly 关键字与 const 关键字不同.const 字段只能在该字段的声明中 ...

  7. C# Readonly和Const的区别

    什么是静态常量(Const)和动态常量(Readonly) 先解释下什么是静态常量(Const)以及什么是动态常量(Readonly). 静态常量(Const)是指编译器在编译时候会对常量进行解析,并 ...

  8. 1.2 - C#语言习惯 - 用运行时常量readonly而不是编译期常量const

    C#中有两种类型的常量:编译期常量和运行时常量.二者有着截然不同的行为,使用不当将会带来性能上或正确性上的问题. 这两个问题最好都不要发生,不过若难以同时避免的话,那么一个略微慢一些但能保证正确的程序 ...

  9. const和static readonly 区别

    我们都知道,const和static readonly的确很像:通过类名而不是对象名进行访问,在程序中只读等等. 在多数情况下可以混用. 二者本质的区别在于,const的值是在编译期间确定的,因此只能 ...

最新文章

  1. 国产芯片WiFi物联网智能插座—电耗采集功能设计
  2. Pytorch完成基础的模型-线性回归
  3. 大作文十大必背范文:五星级真题
  4. SAP C4C里没有选择Port binding的url Mashup行为分析
  5. jacob 实现Office Word文件格式转换
  6. CTS(4)---mtk cts FAIL处理方法
  7. 不知道从哪里开始更新你的秋季海报设计?
  8. 去掉WINDOWS SERVER 开机按CTRL+ALT+DEL登陆的方法
  9. BZOJ2038 小Z的袜子 (莫队算法)
  10. Aspose.Pdf for .NET控件PDF文档到Excel、EPS、SVG等的转换
  11. Xtrabackup--InnoDB备份工具介绍(1)
  12. EXP-00003解决
  13. ES中文分词器-ik分词器安装
  14. java几种排序方式
  15. 搜索引擎算法之关键词类目预测
  16. scrapy框架中Spider源码解析
  17. java 垃圾回收之垃圾回收器篇
  18. 转行产品经理必须要知道的三件事!
  19. 【服务器】vim使用
  20. 玩转微信 | 教你设置微信的“空白“昵称

热门文章

  1. 《UG NX8.0中文版完全自学手册》一2.4 布局
  2. 教你如何监控 Apache?
  3. Java普通工程转换成标准的maven工程
  4. 怎的使用jstack诊断Java应用程序故障
  5. JimStoneAjax如何跟DWR竞争?
  6. CCNP-17 OSPF试验13(BSCI)
  7. php7版本一句话木马,一句话查找 PHP 木马
  8. shell中的文本处理(grep、sed、awk命令)
  9. html marquee初始空白_前端开发必会的HTML/CSS硬知识
  10. ubuntu18.04安装unity tweak tool