- 0
- 0
- 约8.02千字
- 约 12页
- 2017-02-06 发布于湖南
- 举报
technotes,howtoseries
1. 引言
本文是一套面向C# programmer 和C# developer 进行开发所应遵循的开发规范。
按照此规范来开发C#程序可带来以下益处:
代码的编写保持一致性,
提高代码的可读性和可维护性,
在团队开发一个项目的情况下,程序员之间可代码共享
易于代码的回顾,
本规范是初版,只适用于一般情况的通用规范,并不能覆盖所有的情况。
2. 文件组织
2.1 C# 源文件
类名或文件名要简短,不要超过2000LOC,将代码分割开,使结构清晰。将每个类放在一个单独的文件中,使用类名来命名文件名(当然扩展名是.cs)。这种约定会使大家工作更简单。
2.2 目录设计
为每一个命名空间创建一个目录。(用MyProject/TestSuite/TestTier作为MyProject.TestSuite.TestTier的路径,而不用带点的命名空间名做路径)这样可以更容易地将命名空间映射到目录层次划分。
3. 缩进
3.1 换行
当一个表达式超过一行时,根据这些通用原则进行处理:
在逗号后换行。
在操作符后换行。
在高层换行而不要在低层处换行。
折行后对齐上一行语句同一层的表达式起始位置。
方法调用换行示例: longMethodCall(expr1, expr2,???????????????expr3, expr4, expr5);
算术表达式换行示例:
推荐:var = a * b / (c - g + f) +??????4 * z;
不好的格式——应避免:
var = a * b / (c - g +??????f) + 4 * z;
推荐使用第一种方法,因为是在括号表达式之外折行(高层次折行原则)。注意要用制表符到缩进的位置,然后用用空格到折行的位置。在我们的例子中是: var = a * b / (c - g + f) + ......4 * z;表示是制表符,.表示是空格符。(制表符后是空白是用制表符缩进)。一个好的编码习惯就是在所用的编辑器中显示制表符和空格符。3.2 空白
利用空格进行缩进从未有过统一的标准。一些人喜欢用两个空格,一些人喜欢用四个空格而还有一些人喜欢用八个空格,甚至有的人喜欢用更多的空格。好的做法是用制表符。制表符有一些优点:
每个人都可以设置他们自己喜欢的缩进层级。
它仅仅是1个字符而不是2,4,8等等,因此它将减少输入(甚至因为自动缩进,有时你不得不手工设置缩进或取消设置,等等诸如此类的操作)。
如果你想增加或减少缩进,可以标记一块,使用Tab增加缩进层级而用Shift-Tab减少缩进层级。这几乎对于任何文本编辑器都是适用的。
这里,我们定义制表符为标准缩进符。
不要用空格缩进—用制表符!4. 注释
4.1 块注释
块注释通常应该是被避免的。推荐使用///注释作为C#的标准声明。如果希望用块注释时你应该用以下风格:/* Line 1* Line 2* Line 3*/
因为样可以为读者将注释块与代码块区分开。虽然并不提倡使用C风格的单行注释,但你仍然可以使用。一旦用这种方式,那么在注释行后应有断行,因为很难看清在同一行中前面有注释的代码:/* blah blah blah */
块注释在极少情况下是有用的。通常块注释用于注释掉大的代码段。
4.2 单行注释
你应该用//注释风格“注释掉”代码(快捷键,Alt+/)。它也可以被用于代码的注释部分。
单行注释被用于代码说明时必须缩进到相应的编进层级。注释掉的代码应该放在第一行被注释掉以使注释掉的代码更容易看清。
一条经验,注释的长度不应该超过被解释代码的长度太长,因为这表示代码过于复杂,有潜在的bug。4.3 文件注释
在.net 框架,Microsoft 已经介绍了一个基于XML 注释的文件。这些文件是包括XML 标签的正规的单行的C#注释。他们遵循单行注释的模式: /// summary/// This class.../// /summary
多行XML 注释遵循这种模式: /// exception cref=”BogusException”/// This exception gets thrown as soon as a/// Bogus flag gets set./// /exception
为了被认作是XML注释行,所有的行都必须用三个反斜线开始。标签有以下两类:
文件说明项
格式/参考
第一类包括像summary, param or exception的标签。描述一个程序的API元素的这些文档说明项必须写清楚以方便其他程序员。如上面的多行注释示例所示,这些标签通常带有名称或cref属性。编译器会检查这些属性,所以它们必须是有效、正确的。第二类用诸如
您可能关注的文档
- kl8-3德国按摩缸操作说明-ethink.doc
- microsoftaccess2000数据库管理软件.doc
- mifareone餐饮机(v4)简要使用说明.doc
- ocfs-ldss-4780.doc
- petsc利用方法-cc.kyushu.doc
- s205省道(13省道)锦城至里畈段改建工程竣工验收鉴定书.doc
- sopv1-support.asiainfo.doc
- sweccl词性赋码集.doc
- t-1000系统介绍-led控制系统led控制器深圳led.doc
- tcpip应用协议与编程课程教案.doc
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 传媒法规与伦理教学课件(共22章)新闻伦理研究综述.pdf VIP
- 汽车行驶记录仪产品使用说明书.PDF VIP
- 2026年成都市美容医疗诊所医美项目安全规范运营可行性研究报告.docx VIP
- ocean培训petrel re快速入门工作流程.pdf VIP
- (四年级奥数班讲义.doc VIP
- 单病种病案数据填报指导手册.doc
- 企业 IPO 筹备方案(最新版,附时间表 + 材料).docx VIP
- 深圳初三数学联考模拟试题.docx VIP
- 高考历史二轮总复习精品课件 第四板块 世界现代史 第十七讲 现代科技的发展与当今世界发展的趋势.ppt VIP
- 2024年菏泽职业学院单招数学考试模拟试题及答案解析.docx VIP
原创力文档

文档评论(0)