zoukankan      html  css  js  c++  java
  • Effective C#高效编程(02:常量)

    前面写过一篇关于常量的文章:const与readonly,C#中的常量有两种定义:const与readonly。

    const:编译期常量

    readonly:运行时常量

    首先分别定义一个常量:

    1 public const int CurrentYearConst = 2013;
    2 
    3 public static readonly int CurrentYearReadonly = 2013;

    1. const可在方法中声明,而readonly不可以。

      在方法中声明readonly变量时,系统提示:修饰符“readonly”对该项无效

      const不支持通过new来赋值,并且只支持数字和字符串。

    2. 编译不同

    1 if (CurrentYearConst == DateTime.Now.Year) { }
    2 if (2013 == DateTime.Now.Year) { }
    3 if (CurrentYearReadonly == DateTime.Now.Year) { }

    第一行与第二行代码会编译成等效的IL,第三行代码编译成IL时,仍然为readonly变量。

    这就造成了前一篇文章中所提到的,switch()可以使用const变量,不可以使用readonly变量

    3. 性能与灵活性

    从第二点中我们可以预见,const的性能会优于readonly,但是通过这种方式提升的性能几乎可以忽略不计,但是却丧失了灵活性

    在性能几乎相当的情况下,灵活性就成了决定条件了,所以尽量使用readonly,而不是const

  • 相关阅读:
    #Responsive# 响应式图片//www.w3cplus.com/blog/tags/509.html 整个系列完结。
    用js实现帧动画
    js判断对象是否存在
    canvas
    函数的四种调用模式
    递归真的好难啊!!! 看完之后好多了
    词法作用域
    变量名提升
    ajax调用后台Java
    左图又文字自适应
  • 原文地址:https://www.cnblogs.com/zhuhc/p/3455844.html
Copyright © 2011-2022 走看看