C#编码规范
2016-12-04 17:16
302 查看
引言
命名规则
命名方法
注释规范
数据库命名
命名实例
变量
WebControls
ADONET
总结
2、名字一律使用英文单词,而不能为拼音。
3、在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。
4、在具体任务开发中,如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报质量管理部审计组。
在一般情况下,不推荐缩写命名,不要担心变量命名长,长的变量名能使变量的意义更加清晰,其实从长变量名的负面作用三,因为Ctrl+C和Ctrl+V加上在VS中的智能感知,其负面追用已经很小。变量命名的原则是,尽最大努力让其他人在看到我们的变量/函数/…等的第一时间,大概能猜出它是做什么的。 比如:int productTypeCount = 0; //我们在第一时间就能知道它是记录产品的数量的变量。
Pascal:每个单词的首字母大写,例如ProductType
Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType
在代码文件的头部进行注释,这样做的好处在于,我们能对代码文件做变更跟踪。在代码头部分标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的开发和修改。
2、标准注释
以下是一些常用的C#成员及其推荐命名方法:
命名规则
命名方法
注释规范
数据库命名
命名实例
变量
WebControls
ADONET
总结
1. 引言
最近,小编正在进行机房合作项目,多人开发的项目,让我学到了不少的知识。除此之外,对代码的认识更是有了深一层的理解。好的代码,不仅自己写的放心,别人看着也舒心。你好,我好,大家好的事情,何乐而不为啊!2.命名规则
1、名字应该能够标识事物的特性,并且与业务挂钩。2、名字一律使用英文单词,而不能为拼音。
3、在名字中,多个单词用大写第一个字母(其它字母小写)来分隔。例如:IsSuperUser。
4、在具体任务开发中,如果有特定的命名约定,则在相应的软件开发计划中予以明确定义及上报质量管理部审计组。
在一般情况下,不推荐缩写命名,不要担心变量命名长,长的变量名能使变量的意义更加清晰,其实从长变量名的负面作用三,因为Ctrl+C和Ctrl+V加上在VS中的智能感知,其负面追用已经很小。变量命名的原则是,尽最大努力让其他人在看到我们的变量/函数/…等的第一时间,大概能猜出它是做什么的。 比如:int productTypeCount = 0; //我们在第一时间就能知道它是记录产品的数量的变量。
3.命名方法
编程的命名方式主要有Pascal和Camel两种:Pascal:每个单词的首字母大写,例如ProductType
Camel:首个单词的首字母小写,其余单词的首字母大写,例如productType
4.注释规范
1、文件头部注释在代码文件的头部进行注释,这样做的好处在于,我们能对代码文件做变更跟踪。在代码头部分标注出创始人、创始时间、修改人、修改时间、代码的功能,这在团队开发中必不可少,它们可以使后来维护/修改的同伴在遇到问题时,在第一时间知道他应该向谁去寻求帮助,并且知道这个文件经历了多少次迭代、经历了多少个程序员的开发和修改。
/*************************************************** ** 作者:XXX ** 创始时间:2016年12月4日16:20:08 ** 修改人:XXX ** 修改时间:2016年12月4日16:20:08 ** 描述: 主要用于产品信息的资料录入,… ***************************************************/
2、标准注释
/// <summary> /// <对该方法的说明> /// </summary> /// <param name="参数名称"><参数说明></param> /// <returns> <对方返回值的说明,该说明必须明确说明返回的值代表什么含义> ///</returns>
5.数据库命名
数据库命名数据库的字段、表名的命名都推荐采用Pascal命名方式,尽量不采用缩写。当然,使用长的字段名、表名,可能会使SQL语句的编写带来负面影响。我推荐大家可以使用一些ORM,ORM的性能肯定不会比直接写SQL的好,但是如果做业务系统,更重要的是系统多久能交付用户使用,ORM不仅使开发时间可以缩短不少,并且在后期的维护上也比直接写SQL便利很多。Type | Example |
---|---|
表 | T_Student、R_ClassGrade |
表字段 | userId |
视图 | V_Student |
存储过程 | PROC_Login |
触发器 | TR_Customer_I |
6.命名实例
1.变量
Type | Prefix | Example |
---|---|---|
Array | arr | arrShoppingList |
Boolean | bln | blnIsPostBack |
Byte | byt | bytPixelValue |
Char | chr | chrDelimiter |
DateTime | dtm | dtmStartDate |
Double | dbl | dblSizeofUniverse |
Long | lng | lngBillGatesIncome |
Short | shr | shrAverage |
String | str | strFirstName |
2.WebControls
Type | Prefix | Example |
---|---|---|
AdRotator | adrt | adrtTopAd |
Button | btn | btnSubmit |
Calendar | cal | calMettingDates |
CheckBoxList | chkl | chklFavColors |
CompareValidator | valc | valcValidAge |
CustomValidator | valx | valxDBCheck |
DataGrid | dgrd | dgrdTitles |
DataList | dlst | dlstTitles |
DropDownList | drop | dropCountries |
HyperLink | lnk | lnkDetails |
Image | img | imgAuntBetty |
ImageButton | ibtn | ibtnSubmit |
Label | lbl | lblResults |
LinkButton | lbtn | lbtnSubmit |
ListBox | lst | lstCountries |
Panel | pnl | pnlForm2 |
PlaceHolder | plh | plhFormContents |
RadioButton | rad | radFemale |
RadioButtonList | radl | radlGender |
RangeValidator | valg | valgAge |
RegularExpression | vale | valeEmail_Validator |
Repeater | rpt | rptQueryResults |
RequiredFieldValidator | valr | valrFirstName |
Table | tbl | tblCountryCodes |
TableCell | tblc | tblcGermany |
TableRow | tblr | tblrCountry |
TextBox | txt | txtFirstName |
ValidationSummary | vals | valsFormErrors |
XML | xmlc | xmlcTransformResults |
3.ADO.NET
Type | Prefix | Example |
---|---|---|
Connection | con | conNorthwind |
Command | cmd | cmdReturnProducts |
Parameter | parm | parmProductID |
DataAdapter | dad | dadProducts |
DataReader | dtr | dtrProducts |
DataSet | dst | dstNorthWind |
DataTable | dtbl | dtblProduct |
DataRow | drow | drowRow98 |
DataColumn | dcol | dcolProductID |
DataRelation | drel | drelMasterDetail |
DataView | dvw | dvwFilteredProducts |
标志符 | 规则 | 实例与描述 |
---|---|---|
类class | Pascal | Application |
枚举类型enum | Pascal | 记住,是以Pascal命名,切勿包含Enum,否则FXCop会抛出Issue |
委托delegate | Pascal | 以Pascal命名,不以任何特殊字符串区别于类名、函数名 |
常量const | 全部大写 | 全部大写,单词间以下划线隔开 |
接口interface | Pascal | IDisposable 注:总是以I前缀开始,后接Pascal命名 |
方法function | Pascal | ToString |
命名空间namespace | Pascal | 以.分隔,当每一个限定词均为Pascal命名方式,比如:using |
参数 | Camel | 首字母小写 |
局部变量 | Camel | 也可以加入类型标识符,比如对于System.String类型,声明变量是以str开头,string strSQL = string.Empty; |
数据成员 | Camel | 以m开头+Pascal命名规则,如mProductType(m意味member) |
属性 | Pascal |