南京丹海电子科技有限公司----内部资料.net开发规范12013-03-122修订历史记录日期版本说明作者2013-03-121.0初步定出开发规范赵亚栋3目录一、命名规范.................................................................................11.1空间命名规范.........................................................................................................................11.2类命名规范.............................................................................................................................21.3方法命名规范.........................................................................................................................21.4参数命名规范.........................................................................................................................31.5属性命名规范.........................................................................................................................31.6变量命名规范.........................................................................................................................31.7常量命名规范.........................................................................................................................41.8事件命名规范.........................................................................................................................41.9界面及ADO控件命名规范................................................................................................5二、代码书写格式规范..................................................................9三、代码注释规范........................................................................103.1文件注释规范.......................................................................................................................103.2函数过程注释规范..............................................................................................................103.3常量变量注释规范..............................................................................................................113.4代码修改注释规范..............................................................................................................11南京丹海电子科技有限公司----内部资料1一、命名规范C#命名规范主要基于微软的标准,另外加上实际开发的一些具体经验。它还在不断的维护和完善,针对不同项目的要求,做相应的调整。1.1空间命名规范使用Pascal大写方式,用逗号分隔逻辑成分。避免使用著名公司名称或其它著名品牌的名称作为名称空间的前缀。基本格式:CompanyName/ProjectName.TechnologyName[.Feature][.Design]CompanyName/ProjectName:公司名、项目名称或产品名称;TechnologyName:稳定的、公认的技术名称或架构层次名称;[.Feature][.Design]:可选的功能与设计;例如:namespaceSiemensQuotation.BusinessRules.ProjectManagement西门子报价项目中业务逻辑层中的项目管理其它规则说明:嵌套的命名空间应当有依赖关系。例如:System.Web.UI.Design中的类依赖于System.Web.UI中的类,而不能相反。命名空间和类不能使用同样的名字。例如,命名空间Debug下最好不要又一个类名为Debug。2如果公司名、项目名称或产品名称太长的话,可以用缩写(且全部大写)。1.2类命名规范使用名词、短语命名减少类名中缩写的使用量,不要使用带下划线的字符。类名单词首字母大写。除接口类以I开始,抽象类以A开始外不要使用任何类前缀比如C。基本格式:QualifierclassClassName;Qualifier:修饰符,如public、staticClassName:类名称例如:PublicclassCreateUser普通类ClassICreateUser接口类ClassACreateUser抽象类1.3方法命名规范使用动词、动词短语开始使用Pascal大写,不要使用带下划线的字符,一般需要明确指出使用范围(修饰符)。基本格式:[Qualifier][functionreturntype][MethodName]例如:PrivateStringGetUser()私有方法PublicintSetUserId(intuserId)公有方法31.4参数命名规范使用CamelCase小写,使用描述性参数名。尽量不使用类型命名的参数名,不要使用保留参数。基本格式:例如:PrivateTypeGetType(stringtypeName)PublicstringFormat(UseruserInfo,object[]args)1.5属性命名规范用名词或名词短语命名属性,属性与类型要一样,使用Pascal大写。基本格式:例如:publicenumColor{...};publicColorColor{get{...}set{...}}1.6变量命名规范使用CamelCase小写即第一个单词的首字母小写,除特别约定俗成的变量名称以外不使用缩写,例如不使用nam,addr代替name,address等;除用于循环外不使用单个字母的变量象i,n,x等。其他变量需使用index,dataTemp等具有实际意义的单词或短语。作用域为方法体内的变量不需要使用访问修饰符,作用域为类的变量必须明4确指出使用范围(修饰符),并尽可能的指定为私有。基本格式:例如:IntuserId作用域为方法体的变量PrivateStringuserName作用域为类的变量1.7常量命名规范所有单词大写,多个单词之间用_隔开。基本格式:例如:PublicConstMAX_LENGTH=100;1.8事件命名规范用EventHandloer后缀命名事件处理程序,使用名为sender和e的两个参数,Sender参数代表提出事件的对象。Sender参数永远是一个类型对象,即使它可能使用了更为特定的类型,与事件相关的状态被封装在一个名为e的事件类范例中。要使用这个类型的正确的、特定的事件类;命名事件名时,需要有之前和之后的时态概念,因此要使用现在时态和过去时态(不要使用BeforeXxx\\AfterXxx的方式),可以被取消的结束事件就有Closing事件和Closed事件基本格式:5例如:publicdelegatevoidMouseEventHandler(objectsender,MouseEvente)1.9界面及ADO控件命名规范由于窗口、ADO或页面对象拥有大量的属性和变量,如果有前缀,就很容易区分控件。所以界面控件使用时需要使用前缀。基本格式:WinFormControl命名数据类型数据类型简写标准命名举例LabellbllblMessageLinkLabelllblllblTodayButtonbtnbtnSaveTextBoxtxttxtNameMainMenummnummnuFileCheckBoxchkchkStockRadioButtonrbtnrbtnSelectedGroupBoxgbxgbxMainPictureBoxpicpicImagePanelpnlpnlBodyDataGriddgrddgrdViewListBoxlstlstProducts6CheckedListBoxclstclstCheckedComboBoxcbocboMenuListViewlvwlvwBrowserTreeViewtvwtvwTypeTabControltctltctlSelectedDateTimePickerdtpdtpStartDateHscrollBarhsbhsbImageVscrollBarvsbvsbImageTimertmrtmrCountImageListilstilstImageToolBartlbtlbManageStatusBarstbstbFootPrintOpenFileDialogodlgodlgFileSaveFileDialogsdlgsdlgSaveFoldBrowserDialogfbdlgfgdlgBrowserFontDialogfdlgfdlgFootColorDialogcdlgcdlgColorPrintDialogpdlgpdlgPrintWebControl命名数据类型数据类型简写标准命名举例AdRotatoradrtExample7ButtonbtnbtnSubmitCalendarcalcalMettingDatesCheckBoxchkchkBlueCheckBoxListchklchklFavColorsCompareValidatorvalcvalcValidAgeCustomValidatorvalxvalxDBCheckDataGriddgrddgrdTitlesDataListdlstdlstTitlesDropDownListdropdropCountriesHyperLinklnklnkDetailsImageimgimgAuntBettyImageButtonibtnibtnSubmitLabellbllblResultsLinkButtonlbtnlbtnSubmitListBoxlstlstCountriesPanelpnlpnlForm2PlaceHolderplhpl