开始实习之后,才发现自己是多么地菜。还有好多东西还要去学习。

公司很好,还可以帮你买书。有一天随口问了一下上司D,代码规范上面有什么要求。然后D在Amazon上面找到了这本书《C#编程风格(The Elements of C# Style)》(中英对照),让我直接买下开看,按上面的要求编写就可以了。书可以找秘书F去报销。

上个星期四在Amazon下单,周一才到。这书确实来的有点慢,没关系,我看的快。从周一到周五,用每天上下班在挤地铁(广州地铁你懂的)的时间,我把书在五个工作日就看完了。当然,关键是够薄。描述也相当简练。

以下是我看完还记得的部分:

1.空白

这个没啥好说的,意思就是该留空白的时候要果断留,不要怕浪费。空白有助于提高代码的可读性。

2.块

一般表示用大括号“{”和“}”括起来的部分。

3.驼峰法(小驼峰法)

变量一般用小驼峰法标识。驼峰法的意思是:除第一个单词之外,其他单词首字母大写。譬如

int myStudentCount;

变量myStudentCount第一个单词是全部小写,后面的单词首字母大写。

4.Pascal法(大驼峰法)

相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。常用于类名,函数名,属性,命名空间。譬如

public class DataBaseUser;

5.全局变量

一般惯例是加一个前缀或者后缀用于私有变量和局部变量。通常是用下划线“_”来标识。譬如

private int myStudentCount_;

下划线有加在前面的,也有加在后面的。个人比较习惯加在前面。

6.常量

常量通常用全大写,并用下划线来分割单词来标志。譬如

private int const STUDENT_COUNT=50;

7.switch

用switch的时候,无论case是否涵括了所有情况,都应该加上Default语句。很多时候结果是不再我们考虑范围内的。应该尽量涵盖所有情况。譬如

switch(month)
{
case 1:
//...
break;
case 2:
//...
break; ... case 12:
//code...
break;
default:
//code...
break;
}

代码用于处理每个月的不同情况,虽然已经处理了十二个月的情况,但是代码还是加上了default用于以防万一,这是值得推荐的。

8.二元运算符

一般在二元运算符左右需要加一个空格。当然用VS的人一般都知道当你打出每一句代码的最后标志符“;”的时候,VS会自动处理代码,给二元运算符的左右加上一个空格。譬如

count = count + i;

可以发现在“=”和“+”左右都是有一个空格的。这样比起不加空格确实好看很多。不信,你别加试试。

9.条件语句

添加语句上面尽量不要用直接值。譬如

int count = 60;
if(count_ >= count)
{
//code...
}

我们推荐这种做法,我们不推荐

if(count_ >= 60)
{
//code...
}

这种做法。当要发生修改的时候,前者的价值就相当明显了。

10.使用别名

尽量使用类型名的别名。例如

int count = 60;
System.Int32 count2 = 60;

其实int只是System.Int32的别名而已,两者产生的效果作用是一模一样的。不过我们推荐使用前者,不推荐后者。这有历史的因素吧,不过只要是个人,都会很自觉写int,double这些别名吧。

11.原子方法

我们推荐原子操作。一个函数不需要做太多的事情。特别是对于类来说。如果一个实现可以用几个原子方法来完成,我们推荐这种做法,而不推荐把方法写地太长。最好别超过100行。

12.访问控制标志

虽然可以默认不填写访问控制符。但是我们不推荐这种做法。我们推荐把类里面所有的变量,方法,属性,...都写上访问权限。

13.region

#region和#endregion是非常好用的东西。它可以在任何位置,无聊是否在同时在同一个块内,都可以使用,将代码收缩。在一个类里面,我们推荐使用region将代码分类。譬如

转载地址:http://www.cnblogs.com/rond/archive/2012/08/21/2646028.html

最新文章

  1. 安装composer
  2. vs快捷方式
  3. JavaScipt 源码解析 Sizzle选择器
  4. 如何在wp8 中调试cocos2dx c++ 代码
  5. 智能硬件+App移动新生态【11.01深圳】
  6. wap手机端解决返回上一页,js
  7. Ext.Net学习笔记19:Ext.Net FormPanel 简单用法
  8. poj 3740 Easy Finding 精确匹配
  9. Atitit.Gui控件and面板----web server区----- web服务器监控面板and控制台条目
  10. 关于接收POST请求 $GLOBALS['HTTP_RAW_POST_DATA']
  11. Vue 进阶之路(七)
  12. 利用python把成绩用雷达图表示出来
  13. Shell 函数相关
  14. 测试CentOS-7-x86_64-Minimal-1708.iso这种光盘安装效果
  15. 【学习总结】Markdown 使用的正确姿势
  16. C#中的BeginInvoke和EndEndInvoke 异步问题
  17. 网络 [HNOI2016]
  18. 初学java集合框架笔记
  19. 第二阶段——个人工作总结DAY07
  20. poj 1068 Parencodings 模拟题

热门文章

  1. 后端MVC和前端MVVC关系详解
  2. 蓝牙协议中的SBC编解码原理和仿真
  3. AI - TensorFlow - 示例02:影评文本分类
  4. springboot的war和jar包
  5. 通过Jenkins定期清除为None的镜像
  6. 时间序列算法(平稳时间序列模型,AR(p),MA(q),ARMA(p,q)模型和非平稳时间序列模型,ARIMA(p,d,q)模型)的模型以及需要的概念基础学习笔记梳理
  7. Springboot 系列(四)Spring Boot 日志框架
  8. [orleans2.1]这是你没玩过的船新版本
  9. 80后程序员降薪6K,预感中年危机来袭,准备跳槽却碰壁
  10. 最新阿里Java技术面试题,看这一文就够了!