命名规范制定意义

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. iOS审核总被拒?腾讯教你提升iOS审核通过率!

    作者:Jamie,腾讯开发工程师,在iOS预审和ASO优化领域从事专项测试相关工作,为腾讯游戏近100个产品提供专项服务. 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest ...

  2. 一小时搞明白自定义注解(Annotation)

    原文链接:http://blog.csdn.net/u013045971/article/details/53433874 什么是注解 Annotation(注解)就是Java提供了一种元程序中的元素 ...

  3. codeforces 706C C. Hard problem(dp)

    题目链接: C. Hard problem time limit per test 1 second memory limit per test 256 megabytes input standar ...

  4. codeforces 569B B. Inventory(水题)

    题目链接: B. Inventory time limit per test 1 second memory limit per test 256 megabytes input standard i ...

  5. CodeForces 547E:Mike and Friends(AC自动机+DFS序+主席树)

    What-The-Fatherland is a strange country! All phone numbers there are strings consisting of lowercas ...

  6. POJ2657Comfort(扩展欧几里得基础)

    A game-board consists of N fields placed around a circle. Fields are successively numbered from1 to ...

  7. 【Lintcode】029.Interleaving String

    题目: Given three strings: s1, s2, s3, determine whether s3 is formed by the interleaving of s1 and s2 ...

  8. 设置可见GPU方式

    只可见第一块GPU os.environ["CUDA_VISIBLE_DEVICES"] = "0"

  9. 51Nod 1362 搬箱子 —— 组合数(非质数取模) (差分TLE)

    题目:http://www.51nod.com/Challenge/Problem.html#!#problemId=1362 首先,\( f[i][j] \) 是一个 \( i \) 次多项式: 如 ...

  10. docker学习 (二)基本概念

    基本概念: Docker包括三个基本概念: 镜像(Image): 特殊的文件系统,提供容器运行时所需的程序.库.资源.配置文件.镜像不包含动态数据,内容在构建后不会被改变. 容器(Container) ...