博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#语言使用习惯
阅读量:4654 次
发布时间:2019-06-09

本文共 802 字,大约阅读时间需要 2 分钟。

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是更有效。同时,将其限制在函数层面上可以更加清晰的将条件性的代码分离出来。

转载于:https://www.cnblogs.com/Daywei/p/3193543.html

你可能感兴趣的文章
流量调整和限流技术 【转载】
查看>>
1 线性空间
查看>>
VS不显示最近打开的项目
查看>>
DP(动态规划)
查看>>
chkconfig
查看>>
2.抽取代码(BaseActivity)
查看>>
夏天过去了, 姥爷推荐几套来自smashingmagzine的超棒秋天主题壁纸
查看>>
反射的所有api
查看>>
css 定位及遮罩层小技巧
查看>>
[2017.02.23] Java8 函数式编程
查看>>
sprintf 和strcpy 的差别
查看>>
JS中window.event事件使用详解
查看>>
ES6深入学习记录(一)class方法相关
查看>>
C语言对mysql数据库的操作
查看>>
INNO SETUP 获得命令行参数
查看>>
HTML5与CSS3权威指南之CSS3学习记录
查看>>
docker安装部署
查看>>
AVL树、splay树(伸展树)和红黑树比较
查看>>
多媒体音量条显示异常跳动
查看>>
运算符及题目(2017.1.8)
查看>>