zoukankan      html  css  js  c++  java
  • C#语言使用习惯

    1.使用属性而不是可访问的数据成员

    2.用运行时常量(readonly)而不是编译期常量(const)

            编译期常量与运行时常量行为的不同之处在于对他们的访问方式不同,编译期常量的值是在目标代码中进行替换的。运行时常量将在运行时求值。

            编译期常量仅能用于数字和字符串。运行时常量也是一种常量,因为在构造函数执行后不能被再次修改。二者的区别在于,只读的值将在运行时给出,这必然会带来更好的灵活性。

    3.推荐使用is或as操作符而不是强制类型转换

            as操作符并不能配合值类型使用。

    object o=Factory.GetObject();
    MyType t = null;
    if(o is MyType)
         t = o as MyType
    

      这个例子并不高效,且有些累赘。若你准备使用as进行类型转换,那么is检查就毫无必要,只要检查返回值是否为null即可。

         使用强制类型转换,我们需要同时检查其是否为null并捕获异常,若是as只需要检查返回的引用是否为null即可。

    4.使用Conditional特性而不是#if条件编译

        条件编译将会在最终release版本中留下一个名为***()的空方法,但它在release和debug版本中都将被调用。虽然在release版本中什么都不做但是方法的加载、JIT编译和调用仍旧有些开销。

        使用Conditional特性

    [Conditional("DEGUB")]
    private void CheckState()
    {
          //check code
    }
    

       注意:Conditional特性方法都返回void类型且不接受任何参数。

        使用Conditional特性生成的IL要比使用#if是更有效。同时,将其限制在函数层面上可以更加清晰的将条件性的代码分离出来。

  • 相关阅读:
    Linux IO接口 监控 (iostat)
    linux 防火墙 命令
    _CommandPtr 添加参数 0xC0000005: Access violation writing location 0xcccccccc 错误
    Visual Studio自动关闭
    Linux vsftpd 安装 配置
    linux 挂载外部存储设备 (mount)
    myeclipse 9.0 激活 for win7 redhat mac 亲测
    英文操作系统 Myeclipse Console 乱码问题
    Linux 基本操作命令
    linux 查看系统相关 命令
  • 原文地址:https://www.cnblogs.com/Daywei/p/3193543.html
Copyright © 2011-2022 走看看