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

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

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

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

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

    即使是尽在眼前的风景,每踏出一步,都会是一个新世界。
  • 相关阅读:
    在C#中使用COM+实现事务控制
    Log4Net使用指南
    配置应用程序块
    Remoting的一些文章索引,方便阅读
    面向对象设计原则回顾
    C#中Finalize方法的问题
    C# 中的类型转换
    DotText源码阅读(2)工程、数据库表结构
    什么是COM组件
    VC中的DoDataExchange函数解析
  • 原文地址:https://www.cnblogs.com/blacktusz/p/8493510.html
Copyright © 2011-2022 走看看