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应该用于定义一个值且该值不能在不同的版本发布时发生改变的常量

  • 相关阅读:
    Jekins与sonarqube集成
    小程序checkbox调整大小(checkbox样式修改)
    小程序拿checkbox的checked属性
    微信小程序animation动画2种方法
    关于xshell中的异常----进程被占用
    xshell应用
    微信公众平台教程
    事件类型和事件对象
    小程序开发指南
    WXSS样式语言
  • 原文地址:https://www.cnblogs.com/tiantianle/p/4856197.html
Copyright © 2011-2022 走看看