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

公司很好,还可以帮你买书。有一天随口问了一下上司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

C#编程风格的更多相关文章

  1. C++服务器开发之基于对象的编程风格

    Thread.h #ifndef _THREAD_H_ #define _THREAD_H_ #include <pthread.h> #include <boost/functio ...

  2. ES6深入学习记录(三)编程风格

    今天学习阮一峰ES6编程风格,其中探讨了如何将ES6的新语法,运用到编码实践之中,与传统的JavaScript语法结合在一起,写出合理的.易于阅读和维护的代码. 1.块级作用域 (1)let 取代 v ...

  3. 个人c语言编程风格总结

    总结一下我个人的编程风格及这样做的原因吧,其实是为了给实验室写一个统一的C语言编程规范才写的.首先声明,我下面提到的编程规范,是自己给自己定的,不是c语言里面规定的. 一件事情,做成和做好中间可能隔了 ...

  4. Google Java编程风格指南

    出处:http://hawstein.com/posts/google-java-style.html 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Comm ...

  5. 编程风格(Coding Style)要求

    编程风格(Coding Style)要求2.1.1 文件(1) 每个模块(module)一般应存在于单独的源文件中,通常源文件名与所包含模块名相同.(2) 每个设计文件开头应包含如下注释内容:? 年份 ...

  6. Javascript编程风格

    Douglas Crockford是Javascript权威,Json格式就是他的发明. 去年11月他有一个演讲(Youtube),谈到了好的Javascript编程风格是什么.我非常推荐这个演讲,它 ...

  7. Google Java编程风格指南中文版

    作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Cre ...

  8. 《C#编程风格》还记得多少

    开始实习之后,才发现自己是多么地菜.还有好多东西还要去学习. 公司很好,还可以帮你买书.有一天随口问了一下上司D,代码规范上面有什么要求.然后D在Amazon上面找到了这本书<C#编程风格(Th ...

  9. Java学习笔记(四)——google java编程风格指南(上)

    [前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...

  10. Java学习笔记(五)——google java编程风格指南(中)

    [前面的话] 年后开始正式上班,计划着想做很多事情,但是总会有这样那样的打扰,不知道是自己要求太高还是自我的奋斗意识不够?接下来好好加油.好好学学技术,好好学习英语,好好学习做点自己喜欢的事情,趁着自 ...

随机推荐

  1. hadoop rpc协议客户端与服务端的交互流程

    尽管这里是hadoop的rpc服务,但是hadoop还是做到了一次连接仅有一次认证.具体的流程待我慢慢道来. 客户端:这里我们假设ConnectionId对应的Connection并不存在.在调用ge ...

  2. 使用ASP.NET Core支持GraphQL -- 较为原始的方法

    GraphQL简介 下面是GraphQL的定义: GraphQL 既是一种用于 API 的查询语言也是一个满足你数据查询的运行时. GraphQL 对你的 API 中的数据提供了一套易于理解的完整描述 ...

  3. es6学习笔记-class之一概念

    前段时间复习了面向对象这一部分,其中提到在es6之前,Javasript是没有类的概念的,只从es6之后出现了类的概念和继承.于是乎,花时间学习一下class. 简介 JavaScript 语言中,生 ...

  4. 开辟sys节点用户层直接操作物理地址(比/dev/mem方便)

    在调试驱动程序时, 经常要设置主控器寄存器参数或者运行时读取寄存器值debug问题, 每次修改驱动读取寄存器值都要编译一次驱动再insmod, 十分不方便, 哪怕驱动提供一个节点 如dev/mem给应 ...

  5. TypeScript|Angular踩坑笔记

    今天按照Angular官网玩了下demo程序,踩了个小坑,记录下. TypeScript可以将变量申明为自定义类型,同时也不对该类型进行检查(不像C#,如果没有这个类型会报错) 比如下面这样: 如果我 ...

  6. 【Vuex】vuex基本介绍与使用

    Vuex是什么? 官方解释: Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集 ...

  7. 【Vue.js】代码优化:在dom中加一行v-if就可少写一个循环类方法

    [问题描述] 把当前用户的购物车中(cartList),商品(good)选中字段checked = true的商品在订单页面中进行展示出来. [一般做法](两次循环) 首先取出当前用户的购物车列表,循 ...

  8. 搞懂MySQL InnoDB事务ACID实现原理

    前言 说到数据库事务,想到的就是要么都做修改,要么都不做.或者是ACID的概念.其实事务的本质就是锁和并发和重做日志的结合体.那么,这一篇主要讲一下InnoDB中的事务到底是如何实现ACID的. 原子 ...

  9. 【2】Asp.Net Core2.2第一个功能增加

    [前言] 上一篇完成了Asp.Net Core 2.2项目的建立,解释了一番项目结构,这一篇开始动手写个小功能,从Controller-Action-Model-View,完成前后端最基础的交互过程, ...

  10. C#实现.ini文件读写操作

    1.ini文件是什么?        见百度百科:https://baike.baidu.com/item/ini%E6%96%87%E4%BB%B6/9718973?fr=aladdin 2.C#语 ...