欢迎来到天天文库
浏览记录
ID:21807850
大小:148.00 KB
页数:26页
时间:2018-10-24
《delphi编码规范42091》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Delphi编码规范1前言为了使代码的可读性好,可维护性高,使不同的开发人员维护相同的代码,保持代码的一致性和使用的一贯性,所有的代码和文档应遵循下面的规则和约定。不是所有的人都会同意本文中的细节。有些项是强制的,而其他项是可选的。希望所有成员都能遵循这些标准,特别是新的代码或需要大幅修改的代码。本文并非最终文档,随着技术的发展应随时进行更新2通用源代码格式规则2.1缩格缩格是指在每一级有两个空格。不要在源代码中保留tab字符,这是因为tab字符会随着不同用户的不同设置和不同的资源管理工具(打印、文档、版本控制
2、等)而代表不同的宽度。你可以通过关闭Environment选项对话框中Editor页上的“Usetabcharacter”和“Optimalfill”检查框(通过Tools
3、Environment)来禁止保存tab字符。2.2页边空格页边空格会被设置成80字符宽。通常,源码不会超出这个边界,但这个方针会有一些弹性。不管是否有可能,那些超出到另一行的语句会在一个逗号或其他操作符之后与前面的语句相连。当一个语句被打断相连时,它应比原来的那一行语句缩进两个字符。2.3Begin...End配对Begin子句应写在独立
4、的一行。例如,下面第一行是错误的写法而第二行是正确的。forI:=0to10dobegin//错误,begin同for在同一行forI:=0to10do//正确,begin出现在独立的一行begin这个规则的例外是当begin子句的出现是作为一个else子句的一部分-参考例子:ifsomestatementthenbegin...endelsebeginsomeOtherStatement;end;end语句永远出现在独立的一行。当begin语句不是一个else子句的一部分时,相应的end语句永远缩进到与beg
5、in部分相对应的位置。1ObjectPascal1.1括号永远不要在括号与括号之间的字符中间留下空格。下面的例子示范了错误的与正确地使用括号中的空格:CallProc(Aparameter);//错误CallProc(Aparameter);//正确永远不要在一个语句中使用不必要的括号。括号只应在源代码中需要的地方使用。以下的例子示范了错误和正确的使用:if(I=42)then//错误-多余的括号if(I=42)or(J=42)then//正确-需要括号1.1保留字和关键字ObjectPascal保留字和关键字
6、永远是全部小写。1.2过程和函数(例程)1.2.1命名/格式化例程的名字永远应该以大写的字母开头并且中间错落分明以便于可读性。下面是一个不正确格式的过程名称:procedurethisisapoorlyformattedroutinename;下面是一个合适的大小写例程名称的例子:procedureThisIsMuchMoreReadableRoutineName;例程的名称应该同它的内容相符。一个会导致某个行为的例程应以动词开头。例如:procedureFormatHardDrive;一个用于设置输入参数的例
7、程应以单词set作为前缀,例如:procedureSetUserName;一个用来接收某个值的例程应以单词get作为前缀,例如:procedureGetUserName:string;1.2.2形式参数1.2.2.1格式化如果有的话,相同类型的形参应合并在一个语句中:procedureFoo(Param1,Param2,Param3:Integer;Param4:string);1.1.1.1命名所有形参的名字应是十分符合它们所代表的意义,特别是应该以传送到例程中的标志符的名称为基础。一个好的参数名称应以字符A
8、为前缀-例如:procedureSomeProc(AuserName:string;AuserAge:integer);“A”前缀按约定表示该参数的名称是与类类型中的一个属性或域的名称相对应的。1.1.1.2参数的排序下面的形参的顺序重点说明了注册者调用约定调用的好处。-最常用的参数应放在第一位,其它的参数应按从左到右的顺序排列。-输入参数列表应放在输出参数列表的左边。-将通用的参数放在特殊参数的左边,例如:procedureSomeProc(Aplanet,AContinent,Acountry,Astate
9、,Acity)-排序有可能有些例外,比如事件的处理。类型为TObject的Sender参数经常放在第一位。1.1.1.3常量参数当一个参数为记录型、数组类型、ShortString、或接口类型并且在例程中不被改变时,这些参数应做上常量标记。这样做会让编译器更加有效率的产生有关这些不改变的参数的代码。而例程中另外一些非变参数也可常量来传送。尽管这样做没有产生任何效果和提高效率,这将会给调
此文档下载收益归作者所有