zoukankan      html  css  js  c++  java
  • EffectiveC#2--为你的常量选择readonly而不是const

    1.对于常量,C#里有两个不同的版本:

       编译时常量--效率相比更高些,但可维护性不好,保留的目的是为了性能。const关键字申明

                         public const int _Millennium = 2000;

       运行时常量--效率稍低些,可维护性好。readonlyc关键字声明,也叫只读变量。

                        public static readonly int _ThisYear = 2007

    2.两者的区别;

            编译时常量只能是基本类型,枚举或者是字符串。编译时常量会被目标代码中的值直接取代

            运行时常量可以是任何类型的数据。运行时常量动态取值(动态指运行时确定值)。

                  注意:运行时常量可以在定义变量时设定值或在构造函数中初始化,其他地方不可以再修改。

          举例:private const DateTime _classCreation = new DateTime(2000,1,1,0,0,0);  //ERROR 值编译时不确定

                 private readonly DateTime _classCreation = new DateTime(2000,1,1,0,0,0);//PASS

            另外:运行时常量可以是一个类的实例成员,也可以是一个类型的静态成员,而编译时常量只能是静态成员

    3.对可维护性的解释

        例子:一个类库中定义一个编译时常量,类库被客户端引用,当类库中常量值需更改时,客户端需要重新编译,否则取出的

    值有问题,而对于运行时常量不存在这样的问题。

    4.  const应该用于定义一个值且该值不能在不同的版本发布时发生改变的常量

  • 相关阅读:
    第三方模块加载时出现XXX运行 提示错误:无法加载文件 C:UsersgxfAppDataRoaming pmXXX.ps1,因为在此系统上禁止运行脚本。
    node模块化
    前端面试集锦
    将字符转换成驼峰表示法
    JavaScript数据处理
    大数据基础整合
    移动端网页特效
    本地存储
    DOM重点核心
    触发器SQL
  • 原文地址:https://www.cnblogs.com/tiantianle/p/4856197.html
Copyright © 2011-2022 走看看