C#编码规范

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便利很多。

TypeExample
T_Student、R_ClassGrade
表字段userId
视图V_Student
存储过程PROC_Login
触发器TR_Customer_I

6.命名实例

1.变量

TypePrefixExample
ArrayarrarrShoppingList
BooleanblnblnIsPostBack
BytebytbytPixelValue
CharchrchrDelimiter
DateTimedtmdtmStartDate
DoubledbldblSizeofUniverse
LonglnglngBillGatesIncome
ShortshrshrAverage
StringstrstrFirstName

2.WebControls

TypePrefixExample
AdRotatoradrtadrtTopAd
ButtonbtnbtnSubmit
CalendarcalcalMettingDates
CheckBoxListchklchklFavColors
CompareValidatorvalcvalcValidAge
CustomValidatorvalxvalxDBCheck
DataGriddgrddgrdTitles
DataListdlstdlstTitles
DropDownListdropdropCountries
HyperLinklnklnkDetails
ImageimgimgAuntBetty
ImageButtonibtnibtnSubmit
LabellbllblResults
LinkButtonlbtnlbtnSubmit
ListBoxlstlstCountries
PanelpnlpnlForm2
PlaceHolderplhplhFormContents
RadioButtonradradFemale
RadioButtonListradlradlGender
RangeValidatorvalgvalgAge
RegularExpressionvalevaleEmail_Validator
RepeaterrptrptQueryResults
RequiredFieldValidatorvalrvalrFirstName
TabletbltblCountryCodes
TableCelltblctblcGermany
TableRowtblrtblrCountry
TextBoxtxttxtFirstName
ValidationSummaryvalsvalsFormErrors
XMLxmlcxmlcTransformResults

3.ADO.NET

TypePrefixExample
ConnectionconconNorthwind
CommandcmdcmdReturnProducts
ParameterparmparmProductID
DataAdapterdaddadProducts
DataReaderdtrdtrProducts
DataSetdstdstNorthWind
DataTabledtbldtblProduct
DataRowdrowdrowRow98
DataColumndcoldcolProductID
DataRelationdreldrelMasterDetail
DataViewdvwdvwFilteredProducts

以下是一些常用的C#成员及其推荐命名方法:

标志符规则实例与描述
类classPascalApplication
枚举类型enumPascal记住,是以Pascal命名,切勿包含Enum,否则FXCop会抛出Issue
委托delegatePascal以Pascal命名,不以任何特殊字符串区别于类名、函数名
常量const全部大写全部大写,单词间以下划线隔开
接口interfacePascalIDisposable 注:总是以I前缀开始,后接Pascal命名
方法functionPascalToString
命名空间namespacePascal以.分隔,当每一个限定词均为Pascal命名方式,比如:using
参数Camel首字母小写
局部变量Camel也可以加入类型标识符,比如对于System.String类型,声明变量是以str开头,string strSQL = string.Empty;
数据成员Camel以m开头+Pascal命名规则,如mProductType(m意味member)
属性Pascal

7.总结

代码规范有其必要性,但不能因为规范而规范,从开发而言,开发了更快的做出稳定的系统,而稳定的系统是为了给公司带来受益。开发人员、项目管理人员都应该更多的从项目经营的角度出来,同时站在公司、客户的角度考虑问题,而不是因为代码而代码。

  • 2
    点赞
  • 11
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值