zoukankan      html  css  js  c++  java
  • 我所理解的readonly和const

          最近要给学校软件小组新成员讲几次课,所以把很多以前懒得学习的和模糊不清的知识点,重新学习了一下。

    MSDN是这样解释的:

    readonly 关键字与 const 关键字不同。 const 字段只能在该字段的声明中初始化。 readonly 字段可以在声明或构造函数中初始化。 因此,根据所使用的构造函数,readonly 字段可能具有不同的值。 另外,const 字段为编译时常数,而 readonly 字段可用于运行时常数.

        什么是编译时常数,什么是运行时常数呢。我想做下面的实验,关于readonly和const你会理解的更好

    在项目外新建个类库,类库中的一个TestClass类定义一个const字段和一个readonly字段

         public const int ParamOne=100;

         public static readonly int ParamTwo=100; 

    在控制台项目调用并输出两个值,预期效果当然是100,100;

    下面所做的将会帮助你理解const和readonly的区别所在。

    修改类库中的ParamOne=50;ParamTwo=50;

    不要重新生成整个项目,仅重新生成类库,bin目录下找到dll文件,复制到控制台bin目录下(目的是不重新编译生成控制台的项目)

    双击控制台的exe文件,接下来会发生什么?

    输出的值是100和50;

    也就是说  const的值没有改变,但是readonly的值改变了。  

    原因是什么呢?

    const的值是保存到元数据,直接嵌入代码,而readonly的值,则是运行时赋值。

  • 相关阅读:
    Redis 持久化总结
    Redis 持久化
    redis.conf的详细说明:
    linux 下 redis 安装
    redis 简介
    小心,Nginx 上传文件大小有限制!
    PSP总结报告
    作业20181204-1 每周例行报告
    对团队成员公开感谢博客
    作业20181127-2 每周例行报告
  • 原文地址:https://www.cnblogs.com/tdws/p/4526328.html
Copyright © 2011-2022 走看看