命名规范制定意义

1. 方便代码的交流和维护,便于日后自己的再次阅读。

2. 不影响编码的效率,不与大众习惯冲突。

3. 使代码更美观、阅读更方便。

4. 使代码的逻辑更清晰、更易于理解。


名词解释

Pascal:帕斯卡命名,每个单词第一个字母大写

Camel :驼峰命名,第一个单词字母小写,其余单词第一个大写


总结表:

标识符

大小写

样例

说明

命名空间

Pascal

namespace System.Security {

}

用有意义的名字命名 namespace,如:产品名、公司名

Pascal

public class StreamReader {

}

使用名词、名词短语命名

接口

Pascal

public interface IEnumerable {

}

以 I 开始,后面加上名词、名词短语、形容词命名。

字段 ( 私有、保护 )

Camel

private string userName;

第一个单词小写,后面连接的单词首字母大写

字段 ( 公共、静态 )

Pascal

public static readonly string UserId ;

属性

Pascal

private int length;

public int Length { get; }

字段private且小写,然后属性public大写

枚举

Pascal

enum FileMode {

Append,

}

事件

Pascal

public event EventHandler Exited ;

方法

Pascal

public string ToString ();

一般将其命名为动宾短语, “动词+对象 ”.

参数

Camel

public static int ToInt32(string userId );


基础数据类型命名

数据类型

标准命名举例

array

arrShoppingList

bool

isPostBack

string

strFirstName

int

intId

DateTime

dtmStartDate

object

objDog

上面是常用的数据类型


注意事项:

序号

说明

示例

1

除约定俗成的,别用缩写。用 name, address, salary 等代替 nam, addr, sal

2

除用于循环,别使用单个字母的变量象 i, n, x 等. 而要使用 index, temp 等

for ( int index = 0; index < count; index++ ){ ...}

3

自定义的异常以 Exception结尾

public class AppException : Exception

4

代码的缩进 .要用 Tab,而不要用 space.

5

所有的类成员变量应该被声明在类的顶部,并用一个空行把它们和方法以及属性的声明区分开

6

建议局部变量在最接近使用它时再声明 .

7

文件名要能反应类的内容,最好是和类同名,一个文件中一个类或一组关连类

8

大括号 "{"要新起一行

9

单独方法要加注释

/// <summary>

/// 根据id获得姓名

/// </summary>

/// <param name="id">检索的id</param>

/// <returns></returns>

public string GetName(int id)

{

return "xiaomi";

}

10

不要对字段名或静态字段名应用前缀。 具体说来, 不要对字段名称应用前缀来区分静态和非静态字段。

例如,应用 g_ 或 s_ 前缀是不正确的。

11

避免容易被主观解释的难懂的名称

方法名 AnalyzeThis() ,或者属性名 xxK8。这样的名称会导致多义性。

12

在类属性的名称中包含类名是多余的

如 Book.BookTitle 。而是应该使用 Book.Title

13

只要合适,在变量名的末尾或开头加计算限定符

( Avg、Sum、Min、Max、Index )

14

在变量名中使用互补对

如 min/max 、begin/end 和 open/close

15

布尔变量名应该包含 Is ,这意味着 Yes/No 或 True/False 值

fileIsFound

16

在命名状态变量时,避免使用诸如 Flag 的术语。状态变量不同于布尔变量的地方是它可以具有两个以上的可能值

不是使

用 documentFlag ,而是使用更具描述性的名称,如 documentFormatType 。 (此项只供参考)

17

用于事件处理的委托添加 “EventHandler ”后缀

public delegate void MouseEventHandler(object sender, MouseEventArgs e);

18

用于事件处理之外的那些委托添加 “Callback ”后缀

19

不要给委托添加 “Delegate ”后缀

C#代码规范整理的更多相关文章

  1. python代码规范整理

    规范参考源: 1.pep8(python代码样式规范):中文文档      https://blog.csdn.net/ratsniper/article/details/78954852 2.pep ...

  2. .NET代码编写规范 整理

    .NET代码编写规范 整理 .NET代码编写规范 - [ASP.NET] 2009-02-26 | Tag: 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://lensp ...

  3. JavaScript代码规范和性能整理

    性能 Js在性能方面有多要注意的地方: 避免全局查找 Js性能优化最重要的就是注意全局查找,因为作用域的查找是先找局部作用域在没有找到之后在去上一级作用域查找直到全局作用域,所以全局作用域查找的性能消 ...

  4. Java编程规范整理

    分享一份网友整理的编程过程中的命名规范 包命名 包名按照域名的范围从大到小逐步列出,恰好和Internet上的域名命名规则相反. 由一组以"."连接的标识符构成,通常第一个标识符为 ...

  5. 【转】iOS代码规范

    原文地址: http://www.cocoachina.com/ios/20150908/13335.html 简介: 本 文整理自Apple文档<Coding Guidelines for C ...

  6. Sonar 常用代码规则整理(二)

    摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ============ ...

  7. Sonar 常用代码规则整理(一)

    更多原创测试技术文章同步更新到微信公众号 :三国测,敬请扫码关注个人的微信号,感谢! 摘要:公司部署了一套sonar,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分 ...

  8. 我自己总结的C#开发命名规范整理了一份

    我自己总结的C#开发命名规范整理了一份 标签: 开发规范文档标准语言 2014-06-27 22:58 3165人阅读 评论(1) 收藏 举报  分类: C#(39)  版权声明:本文为博主原创文章, ...

  9. 单元测试系列之十:Sonar 常用代码规则整理(二)

    摘要:帮助公司部署了一套sonar平台,经过一段时间运行,发现有一些问题出现频率很高,因此有必要将这些问题进行整理总结和分析,避免再次出现类似问题. 作者原创技术文章,转载请注明出处 ======== ...

随机推荐

  1. 使用.net实现ZooKeeper客户端

    最近在项目中用到ZooKeeper, 通过Java连接比较容易,.net项目就没那么容易,尤其对于不熟悉Linux的开发人员,这里写点搭建ZooKeeper测试环境的经验,供参考. 背景知识: Zoo ...

  2. BZOJ 1202 [HNOI2005]狡猾的商人:并查集(维护距离)

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1202 题意: 有一个账本,记录了n个月的盈亏. 每个月的数值:正为盈,负为亏. 你知道m个 ...

  3. 关于跨域获取cookie问题的解决

    需求是有2个域名:www.a.com和www.b.com,b.com需要获取a.com中的cookie,解决方法是这样的: 在a.com编写一个设置cookie的页面:set_cookie.php 代 ...

  4. Ajax不能接受php return值的原因

    PHP在处理ajax返回值的时候,如果使用return如 return $result会失败,echo $result却没问题.解释原因如下: 1.ajax请求从服务器端读取返回值,而且这些返回值必须 ...

  5. 分享知识-快乐自己:初始 Struts2 (基本概念)及 搭建第一个Demo

    1):struts2 的基本概念: 1-1):Struts2 是什么? 1.Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2 ...

  6. 【LeetCode】031. Next Permutation

    题目: Implement next permutation, which rearranges numbers into the lexicographically next greater per ...

  7. drop asm disk、撤销drop asm disk

    drop asm disk.撤销drop asm disk drop asm disk:SQL> alter diskgroup XXX offline disk XXXX drop after ...

  8. POJ2887(块状链表)

    Big String Time Limit: 1000MS   Memory Limit: 131072K Total Submissions: 6346   Accepted: 1525 Descr ...

  9. object类型转换为Array类型

    var obj = {a: 1, b: 2, c: 3}; // .... var arr = []; for(var key in obj){ if(!obj.hasOwnProperty(key) ...

  10. openStack cinder 在往虚拟机上挂载云磁盘时总是提示挂在错误 最后找到原因原来是指定挂载云磁盘的虚拟机被锁定

    openStack 虚拟机的锁定功能是一个为了保护虚拟机 被误删除的一项创新共! 在VMs锁定状态下,一大部分针对此锁定的虚拟机都是无法执行的!! 需要进行相应的操作前,请注意解锁指定虚拟机,操作完成 ...