软件开发规范V30.docx
- 文档编号:24626369
- 上传时间:2023-05-29
- 格式:DOCX
- 页数:14
- 大小:20.04KB
软件开发规范V30.docx
《软件开发规范V30.docx》由会员分享,可在线阅读,更多相关《软件开发规范V30.docx(14页珍藏版)》请在冰豆网上搜索。
软件开发规范V30
目录
1术语2
2相关命名规范2
3代码风格规范5
A.ADO.NET命名约定8
B.WebControl命名约定9
C.WinFormControl命名约定10
1术语
提示:
下面是此文档中会用到的一些术语说明。
1.1匈牙利命名法
该命名规则的主要思想是“在变量和函数名中加入前缀以增进人们对程序的理解”。
例如所有的字符变量均以ch为前缀,若是指针变量则追加前缀p。
如果一个变量由ppch开头,则表明它是指向字符指针的指针。
(如:
strFileName,nCount)
1.2Pascal大写
一种大小写形式,所有单词第一个字母大写,其他字母小写。
(如:
DoWork)
1.3Camel大写
一种大小写形式,除了第一个单词,所有单词第一个字母大写,其他字母小写。
(如:
doWrok)
2相关命名规范
2.1类的命名规范
●用有意义的名词或名词短语命名类。
●类名使用Pascal大写。
●不要使用缩写,使用率非常高的除外。
●不要使用下划线。
●不要在类名前加上前缀C。
下面是一些正确命名的类名的例子:
publicclassFileStream{}
publicclassButton{}
2.2枚举和结构的命名规范
●用有意义的名词或名词短语命名。
●使用Pascal大写。
●不要在枚举或结构的名子前面或后面加”Enum”或”Struct”。
●枚举一般使用名词复数,而结构一般使用名词单数。
下面是一些正确命名的枚举名和结构名的例子:
publicenumShareMode{}
publicenumFileType{}
publicstructFileHeaderInfo{}
2.3委托和事件的命名规范
●普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能:
publicdelegatevoidProcess(stringtext);
●用于事件处理的委派类型,必须以EventHandler结尾,如:
publicdelegatevoidProcessEventHandler(stringtext);
2.4接口的命名规范
●使用名词或名词短语,或者描述行为的形容词来命名接口。
例如,IComponent(描述性名词),ICustomAttributeProvider(名词短语),和IPersistable(形容词)。
●使用Pascal大写。
●在接口名前加前缀I,以表示这个类型是一个接口。
●当类是接口的标准执行时,定义这一对类/接口组合就要使用相似的名称。
两个名称的不同之处只是接口名前有一个I前缀。
下面我们举个例子,来看看接口IComponent和它的标准执行,类Component。
publicinterfaceIComponent{}
publicclassComponent:
IComponent{}
publicinterfaceIServiceProvider{}
publicinterfaceIFormatable{}
2.5方法的命名规范
●用动词或动词短语命名方法。
●用下述范例所示的Pascal大写方式命名方法。
下面是一些正确命名的方法名的例子。
RemoveAll()
GetCharArray()
Invoke()
2.6属性的命名规范
●用名词或名词短语命名属性。
●用Pascal大写命名属性。
●不要使用缩写,使用率非常高的除外。
●不要使用下划线。
下面是一些正确命名的属性名的例子。
publicstringFileName{get;set;}
2.7变量和方法参数的命名规范
●方法内的变量(局部变量)和方法参数使用Camel大小写形式。
publicclassHelloWorld
{
publicstringSayHello(stringname)
{
stringfullMessage="Hello"+name;
returnfullMessage;
}
}
●类级别中的变量(全局变量)使用Camel大小写,并在最前面加下划线标识。
publicclassHelloWorld
{
privateint_helloWorld="HelloWorld!
";
publicstringSayHello()
{
return_helloWorld;
}
}
●在方法级别中,出现多个名称类似的变量名时,允许适量使用匈牙利命名法来命名变量。
publicboolIsInArray(intuserId,string[]userIdArray)
{
for(inti=0;i { intnUserIdTemp=int.Parse(userIdArray[i]); if(nUserIdTemp==userId) { returntrue; } } returnfalse; } ●用有意义的,描述性的词语来命名变量。 ●别用缩写。 用name,address,salary等代替nam,addr,sal。 ●别使用单个字母的变量象i,n,x等.使用index,temp等,用于循环迭代的变量例外: for(inti=0;i { } 2.8常量的命名规范 ●常量使用全大写形式,多个单词之间使用下划线分割。 publicclassHelloWorld { privateconststringHELLO_WORLD_STRING="HelloWorld! "; publicstringSayHello() { returnHELLO_WORLD_STRING; } } 2.9文件名的命名规范 一般.cs文件名要和类名匹配,如果一个.cs文件中包含一组类、接口或枚举等,可以使用一个抽象名词来作为文件名。 3代码风格规范 3.1空格的使用 ●缩进用4个空格,VS.NET中可以设置按TAB键输入4个空格。 ●要在左花括号之后和右花括号之前加一个空格。 publicintFoo{get{returnfoo;}} ●要在形式参数之间的逗号后加一个空格。 publicvoidFoo(charbar,intx,inty)//正确 publicvoidFoo(charbar,intx,inty)//错误 ●避免在左圆括号之后或右圆括号之前加空格。 Foo(myChar,0,1)//好 Foo(myChar,0,1)//不好 ●不要在成员的名字和左圆括号之间加空格。 Foo()//好 Foo()//不好 3.2花括号的使用 ●花括号({})必须单独一行,而不要和if,for等在同一行(下面会有例外情况)。 不好的代码: if(...){//Dosomething} 好的代码: if(...) { //Dosomething } ●如果花括号({})中的代码非常简短,可以和其他语句放置在一同行。 privatestring_FileName; publicstringFileName { get{return_FileName;} set{_FileName=value;} } ●在if、for控制块内的代码必须使用花括号({})来明确起止范围,那怕只有一行代码。 不好的代码: if(result==1) Console.Write("True"); 好的代码: if(result==1) { Console.Write("True"); } 3.3注释 ●别每行代码,每个声明的变量都做注释。 ●在需要的地方注释。 可读性强的代码需要很少的注释。 如果所有的变量和方法的命名都很有意义,会使代码可读性很强并无需太多注释。 ●行数不多的注释会使代码看起来优雅。 但如果代码不清晰,可读性差,那就糟糕。 ●如果应为某种原因使用了复杂艰涩的原理,为程序配备良好的文档和重分的注释。 ●避免使用块注释语法(/*…*/),多行注释也最好分开使用单行注释语法(//…) ●不要把注释放在行尾,除非注释非常简短。 publicenumOrderStatus { Initialize,//初始化 Checkout,//已签出 Failed,//失败 Succeed//成功 } 3.4空行 ●多个方法、类之间要使用空行分割。 ●不要在一块逻辑代码中随意使用空行,空行用于在合适的地方分割代码逻辑块。 不好的代码: boolSayHello(stringname) { stringfullMessage=“Hello“+name; DateTimecurrentTime=DateTime.Now; stringmessage=fullMessage+“,thetimeis: “+currentTime.ToShortTimeString(); MessageBox.Show(message); if(…) { //Dosomething //… returnfalse; } returntrue; } 好的代码: boolSayHello(stringname) { stringfullMessage=“Hello“+name; DateTimecurrentTime=DateTime.Now; stringmessage=fullMessage+“,thetimeis: “+currentTime.ToShortTimeString(); MessageBox.Show(message); if(…) { //Dosomething //… returnfalse; } returntrue; } 3.5代码块的组织 ●一个方法包含的代码量一般在25行以内,大的方法尽量拆分成较小的方法。 ●考虑根据下面给出的顺序和组别来对成员进行分组: ⏹所有字段 ⏹所有属性 ⏹所有构造函数 ⏹方法 ⏹事件 ⏹公开成员 ⏹私有成员 ●对于拥有100行以上的代码块,考虑使用#region块来组织代码。 ●Using指令要放在命名空间的声明之外。 ●考虑根据下面给处的顺序对Using声明进行分组。 ⏹.NET内部程序集引用声明。 ⏹内部项目程序集引用声明。 ⏹第三方程序集引用声明。 usingSystem; usingSystem.Collections; usingSystem.Data; usingProject.Common; usingCastle.ActiveRecord; 附录: A.ADO.NET命名约定 数据类型 数据类型简写 标准命名举例 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 B.WebControl命名约定 数据类型 数据类型简写 标准命名举例 AdRotator adrt Example Button btn btnSubmit Calendar cal calMettingDates CheckBox chk chkBlue 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 C.WinFormControl命名约定 数据类型 数据类型简写 标准命名举例 Label lbl lblMessage LinkLabel llbl llblToday Button btn btnSave TextBox txt txtName MainMenu mmnu mmnuFile CheckBox chk chkStock RadioButton rbtn rbtnSelected GroupBox gbx gbxMain PictureBox pic picImage Panel pnl pnlBody DataGrid dgrd dgrdView ListBox lst lstProducts CheckedListBox clst clstChecked ComboBox cbo cboMenu ListView lvw lvwBrowser TreeView tvw tvwType TabControl tctl tctlSelected DateTimePicker dtp dtpStartDate HscrollBar hsb hsbImage VscrollBar vsb vsbImage Timer tmr tmrCount ImageList ilst ilstImage ToolBar tlb tlbManage StatusBar stb stbFootPrint OpenFileDialog odlg odlgFile SaveFileDialog sdlg sdlgSave FoldBrowserDialog fbdlg fgdlgBrowser FontDialog fdlg fdlgFoot ColorDialog cdlg cdlgColor PrintDialog pdlg pdlgPrint
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 开发 规范 V30