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

  • 相关阅读:
    request.getParameterMap 跟request.getParameter区别
    SQL语句中---删除表数据drop、truncate和delete的用法
    今日出现两个错误
    html和jsp的区别及优缺点
    怎么将 美国的日期格式改成中国的日期格式
    java web相关的面试题
    i++与++i的关系
    Oracle常见的语法,以及跟MySQL的区别
    DBA
    java基础之印象笔记
  • 原文地址:https://www.cnblogs.com/tiantianle/p/4856197.html
Copyright © 2020-2023  润新知