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

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

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

 

 人老了记忆力就是差。

时间: 2024-10-26 03:30:26

《C#编程风格》还记得多少的相关文章

raywenderlich.com的Swift编程风格指南

翻译自:https://github.com/raywenderlich/swift-style-guide 这个风格指南可能和你从其他地方看到的不同,我们的焦点主要集中在互联网和文章上的可读性,创建这个编程风格指南是为了保持我们的书籍.教程和入门工具包中代码的优雅与一致性------尽管我们有和许多不同的作者合作. 我们的首要目的是简洁.可读性和简单. 你在写Objective-C吗?看看我们的Objective-C风格指南吧.  目录 命名 对类.方法.变量等使用包含描述性的驼峰式(Came

Google Java 编程风格指南

前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Google的Java编程风格. 与其它的编程风格指南一样,这里所讨论的不仅仅是编码格式美不美观的问题, 同时也讨论一些约定及编码标准.然而,这份文档主要侧重于我们所普遍遵循的规则, 对于那些不是明确强制要求的,我们尽量避免提供意见. 1.1 术语说明 在本文档中,除非另有说明: 术语class可表示一个普通类,枚举类,接口或是annotation类型(@interfac

Google Java编程风格指南

作者:Hawstein出处:http://hawstein.com/posts/google-java-style.html声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. 目录 前言 源文件基础 源文件结构 格式 命名约定 编程实践 Javadoc 后记 前言 这份文档是Google Java编程风格规范的完整定义.当且仅当一个Java源文件符合此文档中的规则, 我们才认为它符合Googl

理解C语言——从小菜到大神的晋级之路(15)——完结篇:C编程风格

本期视频链接:点击这里 有人说过:"程序源代码其实是跟人阅读的,只是恰好机器可以编译而已".编程初学者常常会有这样一个观念,就是我的程序只要编译通过了,运行没有问题那就万事大吉了.至于代码的编写规不规范,完全就是无关紧要的小事情.如果是处于学习阶段,比如为了完成在学校的C语言课的作业,那么花心思在代码规范上的确没有特别的必要,因为这些代码基本不会进入实用工程,也不会被很多人阅读到. 但是,如果应用到了工程领域,比如在软件/互联网企业的技术研发部门,或者Github等平台上的开源工程,那

《C++编程风格(修订版)》——2.2 明确定义的状态

2.2 明确定义的状态 C++编程风格(修订版) 在 string 类的前两个构造函数中存在着同样的问题. 如果在创建 string 对象时调用了上述两个构造函数之一,那么这个 string 对象的初始状态将 是未定义的.在下面的代码中将输出两个字符串,其中在创建 string 对象时分别调用了上面两个 构造函数. 对 x 和 y 来说,调用函数 print() 的结果是未定义的,因为由 x.s 和 y.s 指向的字符数组中的 内容是未定义的.在这两个构造函数中,都为字符数组分配了内存,但却没有

《C++编程风格(修订版)》——导读

前言 C++编程风格(修订版) 本书采用一种统一的方法来给出所要学习的内容.通过研究示例程序--"编程风格示例"--来引入每个学习主题,这些示例程序通常在某些重要的方面存在着缺陷.在分析程序时,我们采取了与做代码交叉审查时一样的思路:在审查同事的代码时,我们要找出哪些问题是最需要改正的,以及对程序的哪些部分进行修改才能最大程度提升程序的整体性能.在本书中,我们将对每个示例程序做详尽的阅读和分析.读者在阅读书中对示例程序的分析之前,可以首先从自己的角度去分析程序中的问题,然后试着给出自己

《C++编程风格(修订版)》——3.4 封装

3.4 封装 C++编程风格(修订版) 新的堆栈抽象更简单,程序的代码量也更小,并且也使用了更少的内存.然而,在StackIndex及其派生类的关系中还存在着尚未暴露出来的问题.在本章的前面部分,我们已经注意到,派生类的成员函数push()和pop()隐藏了它们从基类继承而来的同名成员函数.不过,我们也可以在IntStack和CharStack对象上来调用这些基类函数,这就需要使用函数的完全解析名字:StackIndex::push()和StackIndex::pop().事实上,在它们各自的派

《C++编程风格(修订版)》——3.6 模板

3.6 模板 C++编程风格(修订版) IntStack和CharStack的共同属性可以用另一种不同的方式来表达,即C++的模板机制.模板也被称之为参数化类型,在程序清单3.5中给出了堆栈的模板. 程序清单3.5 Stack模板 Stack模板定义了一组类.在使用Stack模板来声明一个对象时,必须同时提供一个类型来替换模板声明中的类型T.例如, 在上面的语句中,声明了一个对象stackOfChar,这个对象是一个存储10个char类型值的堆栈,而在下面的语句中: 声明了一个对象stackOf

还记得被称为Facebook杀手的 Ello 吗?

摘要: 还记得被称为Facebook杀手的 Ello 吗?它提倡简单.美丽.无广告,以用户为核心打造社交净土,也明确反对Facebook的商业性质对于Facebook来说用户都是产品,广告商才是他们的主子.Ell 还记得被称为"Facebook"杀手的Ello吗?它提倡简单.美丽.无广告,以用户为核心打造社交净土,也明确反对Facebook的商业性质--"对于Facebook来说用户都是产品,广告商才是他们的主子."Ello甫一上线就吸引了众多科技文人的关注,短短一