zoukankan      html  css  js  c++  java
  • 编译时常量与运行时常量

      最近了解了一下这两个常量的区别,网上介绍的很多,说的多是const 与 readonly的区别,其中的区别就不多说了,自己打开VS验证一下这其中的区别。

      一开始没注意 readonly 前的 static 这个关键字。开始也想验证的是 const 和 readonly,这个应该无关大雅。在调用常量过程中发现不对劲了,const定义的常量是需要类名调用的,readonly则是需要new一个对象调用,这明显调用方式都不一样了,这样对比这两个关键字就不平等了。其实这样的问题应该看到就能发现了,也是我对const这个关键字不熟悉,才到了验证时才发现。

      要对比的话,确切的说应该是  static readonly 与 const 的区别,这样两个都是用类名调用常量,这才能公平竞争。实现的效果也正如网上其他帖子所说的一样。调用const常量,编译时就会将常量的值赋予调用方,调用 static readonly常量则是获取该变量,运行时,才会将值传给调用方。这样就导致不同的程序集如果有调用到const的常量,就需要重新编译才能获取正确的值了,否在获取的还是原来的值。

      一个对比的小细节,记录一下

    即使是尽在眼前的风景,每踏出一步,都会是一个新世界。
  • 相关阅读:
    致5年后的自己
    基础知识回顾——属性
    基础知识回顾——类和对象
    基础知识回顾——面向对象编程
    基础知识回顾——函数
    基础知识回顾——流程控制
    基础知识回顾——列表和字典
    基础知识回顾——元组和字符串
    基础知识回顾——通用序列操作
    XPath Checker和Firebug安装与使用
  • 原文地址:https://www.cnblogs.com/blacktusz/p/8493510.html
Copyright © 2011-2022 走看看