编码命名规范(.NET)(很全 很实用)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Studio .NET 环境中,只要在代码编辑器中将鼠标移到域名上,就可以得到关于字段或变量 的类型信息。另外,类型前缀限制了开发者在需要时改变变量的类型的能力,或者更糟糕的 是,开发者改变了变量的类型,却没有为变量重新命名,从而产生具有误导性的代码。
5.只读静态变量 Pascal 大小写
6.类私有变量 _ + Pascal 大小写。如:_BackColor
13.类对象命名 使用 obj 前缀+Pascal 命名的方式,来告知我们这个变量是一个对象 比如:EQApplication objApp = new EQApplication();
14.Attribute Pascal 大小写,并以 Attribute 结尾
15.控件命名
Button
btn
Calendar
7.在执行统一任务的各个语句组之间插入一个空行。
8.名称空间写法,各类名称空间插入空行,同一类命命空间按字母序号排列 如:
using System; using System.Text; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; using System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls;
11.枚举类型 使 用 Pascal Casing 。 如 : EQFormatConditionOperator 。 枚 举 值 也 是 Pascal , 比 如 EQFormatConditionOperator. Equal
12.委托命名 delegate AfterOperationHandler,总是以 Handler 为后缀结尾
cal
CheckBox
chk
CheckBoxList
chkl
CompareValidator
valcHale Waihona Puke Baidu
CustomValidator
valx
DataGrid
grid
DataList
list
DropDownList
ddl
HyperLink
lnk
Image
img
ImageButton
ibtn
btnOK chkReadOnly
DoSomethingOther(); }
if(condition) {
DoSomething(); } else if(condition) {
DoSomethingOther(); } else {
DoSomethingOtherAgain(); }
3.for、foreach 的格式 //for 格式 for(int i = 0; i < 5; ++i) { // 代码
tblc
TableRow
tblr
TextBox
txt
ValidationSummary
vals
txtLastName
16.其它命名 Connection Command Parameter DataAdapter DataReader DataSet DataTable DataRow DataColumn DataRelation DataView
using net91com.Movies.DataAccess; using net91com.Movies.Business; using net91com.CommonComponent;
三、代码注释 1.注释的目的
a. 文字说明代码的作用 (即为什么要用编写该代码,而不是如何编写); b. 确指出该代码的编写思路和逻辑方法 ; c. 人们注意到代码中的重要转折点 ; d. 使代码的阅读者不必在他们的头脑中仿真运行代码的执行方法
} //foreach 的格式 foreach(int i in IntList) {
// 代码 }
4.while/switch 的格式 //while 格式 while(condition) { // 代码 } //switch 的格式 switch(condition) { case A: ... break; case B: ... break; default: ... break; }
a.实参/ 参数 参数类型 , 参数用来做什么, 任何约束或前提条件
b.字段/属性 字段描述 , 注释所有使用的不变量, 并行事件可见性决策
c.类 类的目的 ,已知的问题 , 类的开发/维护历史 , 注释出采用的不变量 , 并行策略
d.接口 目的 它应如何被使用以及如何不被使用
e.局部变量 用处/目的
//===================================================================== ========== 3.避免对很显然易懂的语句进行注释说明 4.代码应该能作到自我解释代码作用的功能。 5.注释来说明何时可能出错和为什么出错 6.在编写代码前进行注释,给类、属性或方法前面加上功能注释 7.注释的内容
编码命名规范(.NET)(很全,很实用)
一、命名约定
1.常用命名术语说明 Pascal 命名格式 将标识符的首字母和后面连接的每个单词的首字母都大写。可以对三字
符或更多字符的标识符使用 Pascal 大小写。例如:BackColor Camel 命名格式 标识符的首字母小写,而每个后面连接的单词的首字母都大写。例如:
conn cmd param adpt dr ds dt row col rel dv
17.注意: 不要使用两个字母一样,但大小写不一样的命名来做命名空间,否则在一些不区分大小写
的语言里将不能正确区分这些命名空间声明。例如:namespace ee.cummings 和 namespace EE.cummings 这两个声明
backColor
2.名称空间命名 创建命名空间的名称时应使用以下原则:
“公司名称.技术名称.软件产品代号”或“公司名称.产品技术代号” 例如:Nd.ClassLibrary.Charting 命名空间就表示 Nd 公司里的公用类库里的 Charting 画图
类库。 又如:Net91com.Movies.DataAccess 名称空间标识 91.COM 电影站的数据访问层程序
Label
lbl
LinkButton
lbtn
ListBox
lst
Panel
pnl
RadioButton
rad
RadioButtonList
radl
RangeValidator
valg
RegularExpression
vale
RequiredFieldValidator
valr
Table
tbl
TableCell
7.属性命名 使用 Pascal Casing。
属性名称通常都是名词。例如 Text、SelectedIndex 和 Width。
8.接口命名
使用 Pascal Casing。 在接口名称前缀添加前缀 I 。 接口名称尽量具有描述性,并使用形容词,因为接口常常用于给一个类添加某种能力。
基于形容词的名称有 IComparable 和 IFormattable 等
f.成员函数注释 成员函数做什么以及它为什么做这个 哪些参数必须传递给一个成员函数 成员函数返回什么 已知的问题 任何由某个成员函数抛出的异常 可见性决策 成员函数是如何改变对象的 包含任何修改代码的历史 如何在适当情况下调用成员函数的例子适用的前提条件和后置条件
g.成员函数内部注释 控制结构 代码做了些什么以及为什么这样做 局部变量 难或复杂的代码 处理顺序
9.方法命名 使用 Pascal Casing。 方法名通常是动词。方法实现一个对象的行为功能。方法执行某些操作。方法名的例子
有 Read、Write、Start 和 Stop。 当重载方法时,参数的顺序和命名要一致。 定义方法名时不要使用缩写。 方法参数 Camel 大小写结构
10.事件命名 使用 Pascal Casing。 事件名称通常是动词。比如 Click、Load 和 Paint
8.增强注释的可读性 a. 使用完整的语句。 b. 避免使用缩写。 c. 将整个单词大写,以突出它们的重要性。
9.请在每个 if 语句/switch 语句/循环语句的前面加上注释
四、类/接口成员设计 1.设计类和方法时的原则
创建更加容易调试和维护的方法 创建具有强大内聚力的类 创建高度专用的方法 创建松散连接的方法 尽量使方法具有独立性 提高方法的扇入性 降低方法的扇出性 2.名称空间引用 using 声明一律以.NET 基础框架命名空间、第三方组件命名空间、最后是公司内部产品 命名空间排序。 using System; using System.Collections; using Microsoft.CSharp; using Sirc.Egss.FileExchangeServer; 3.成员排列规则 尽量不要使用类 public 变量,用属性代替 类成员以 internal、private、protected、public 排列。public 部分按照构造函数、属性、方 法、事件的顺序排列。 4.每个类文件名应尽量保持与内部类名一致 5.尽量避免手动去修改工具环境自动生成的代码 6.避免在一个类文件里放置多个类 7.一个类文件里应该有且仅有一个命名空间,避免在一个类文件里包含多个不同的命名空间 8.避免在一个类文件里代码超过 500 行(除去自动生成的代码) 9.数据结构里,应该总是更倾向使用 C#的范型 generic 10.尽量缩小变量的作用域 11.接口设计 将接口名去掉 I 前缀后,作为这种默认实现类的名称。比如 IComponent 的默认实现类是 Component 每个接口不应当有超过 20 个成员的情况,一般应保持在 12 个左右 12.方法设计 创建松散连接和高度专用的方法 创建方法时,设法将每个方法视为一个黑箱,其他例程不应要求了解该方法的内部工作 情况,该方法也不应要求了解它外面的工程情况。这就是为什么你的方法应依靠参数而不应 依靠全局变量的原因。 a.将复杂进程放入专用方法。 b.将专用方法中可能要修改的代码隔离。 c.将数据输入/输出(I/O)放入专用方法。 d.将业务规则封装在专用方法中。 e.有返回值的方法必须在方法命名里包含对该返回值的信息描述,如 GetObjectStat()。 f.局部变量的声明,应尽可能紧靠在它首次被使用的地方 g.一个方法里的代码避免超过 25 行,最多不能超过 50 行(除去空行、注释) h.一行代码最多不要超过 80 个字符 i.避免使用强制转换,推荐使用 as 操作符进行防御性转换 j.当需要创建一个长字符串时,推荐使用 StringBuilder,而非 string
尽量避免就一个字母的命名,如 i 或 t,而用 index 或 temp
二、代码格式化
1.{}的位置 {与}各单独占一行。例如: if(x > 5) { //代码 }
2.if、if else 的格式 if(condition) { DoSomething(); }
if(condition) { DoSomething(); } else {
不要使用大小写区分参数的形式来创建方法。比如:void MyFunction(string a, string A) 不要使用大小写的不同来分别命名一个属性。比如:
int Color { get,set } int COLOR { get,set } 不要使用大小写的不同来分别命名一个方法的名字。比如: void calculate() void Calculate() 不要使用标志名称的一部分作为该标志名称的缩写或简写。比如:GetWindow 简写为 GetWin。 尽量避免用缩写方式来对方法的参数命名,即方法的参数命名尽量保持完整,让人一目了 然。
2.对类文件进行属性注释说明
//===================================================================== ==========
// 公司: // 项目名称: // 模块名称: // 开发人员: // 开发日期: // 功能简介:
// 最后修改时间: // 修改人员:
集。
3.类命名 使用完整的单词,避免用缩写。比如 ButtonGrid 比 BtnGrd 要长,但是完整从而可读性好。
一般使用名词。类通常表示一种对象,而对象一般使用具有名词性质的名称。 异常类命名:类以 Exception 结尾, 比如 class EQException: Exception{}
5.try 的格式 try { ... } catch(Exception e) { ... } //或者 try { ... } catch(Exception e) { ... } finally { ... }
6.空格 对于有两个或两个以上空格时,一般不要使用空格来表示缩进,使用 Tab 逗号、分号之后有一个空格 如:TestMethod(a, b, c); 操作符前后有一个空格,但是单目运算符除外(例如: !运算符)。 如:for(int i = 0; i < 10; ++i)
4.局部变量命名 私有字段、函数参数和函数内部声明的变量使用 camel Casing 不使用的是用以指明字段作用域的前缀。如 s_作为共享字段或静态字段的前缀,以及把
g_作为全局变量的前缀。 不使 用用 以指 明数 据类 型的 匈牙 利前 缀表 示法 ,如 (strReturn)。在 Microsoft Visual
相关文档
最新文档