青岛世隆创新软件科技有限公司- 平台开发部 学习培训文档
第7章 世隆Delphi编码规范
7.1前言
本文档主要是为Delphi开发人员提供一个源代码书写标准,以及程序和文件的命名标准,使他们在编程时有一致格式可遵循。这样,每个编程人员编写的代码能够被其他人理解。
本文档不包含用户界面标准。用户界面标准是独立于其他标准的,并且同样是重要的。
7.2源程序书写规范
7.2.1通用源代码格式规则 1). 缩进
缩进就是每级间有两个空格。不要在源代码中放置制表符。这是因为,制表符的宽度随着不同的设置和代码管理实用程序(打印、文档及版本控制等)而不同。
通过使用Tools|Environment 菜单,在Environment Options 对话框的General页上,不要选中Use Tab Character 和Optional Fill 复选框,这样,制表符就不会被保存。
2). 边距
团结 求实 创新 高效 第 1 页 SeaLong SoftWare
青岛世隆创新软件科技有限公司- 平台开发部 学习培训文档
边距设置为80个字符。源代码一般不会因写一个单词而超过边距,但本规则比较灵活。只要可能,长度超过一行的语句应当用逗号或运算符换行。换行后,应缩进两个字符。
3). begin...end 语句
begin 语句尽量不要单独占一行。例如,下面第一行是错误的,而第二行正确:
for i:=0 to 10 do // 错, begin 在另外一行中 begin
for i:=0 to 10 do begin // 对, begin 与f o r 在同一行 注意:end 语句总单独一行,其缩进量与同级别缩进量相同。 4).注释
我们通常使用“{...}”类型的块注释,不支持嵌套注释多行语句。 用“//”类型的行注释。
7.2.2Object Pascal语句格式语句书写规范与用法 1). 括号
在左括号与下一字符之间没有空格。同样,右括号与前一字符也没有空格。下面的例子演示了正确与不正确的空格。
团结 求实 创新 高效 第 2 页
SeaLong SoftWare
青岛世隆创新软件科技有限公司- 平台开发部 学习培训文档
CallProc( Aparameter ); // 错! CallProc(Aparameter); // 正确!
不要在语句中包含多余的括号。在源代码中,括号只有在确实需要时才使用。下面的例子演示了正确与不正确用法:
if (I=42) then // 错,括号是多余的
if (I=42) or (J=42) then // 正确,必须使用括号
2). 保留字和关键字
Object Pascal 语言的保留字和关键字总是完全的小写。下面是Delphi 保留字列表:
and begin constructor do except finally if initialization array case destructor downto exports for implementation inline as class dispinterface else file function in interface SeaLong SoftWare
asm const div end finalization goto inherited is 团结 求实 创新 高效 第 3 页
青岛世隆创新软件科技有限公司- 平台开发部 学习培训文档
label not out property resourcestring string try uses xor published 3). 过程和函数 (1). 格式
library object packed raise set then type var private automated mod of procedure record shl threadvar unit while protected nil or program repeat shr to until with public 过程名应当以大写字母开始,且大小写交错以增加可读性。下面是一个不正确的写法:
procedure thisisapoorlyformattedroutinename; 改成这样写就对了:
procedure ThisIsMuchMoreReadableRoutineName; (2). 形参
团结 求实 创新 高效 第 4 页
SeaLong SoftWare
青岛世隆创新软件科技有限公司- 平台开发部 学习培训文档
(1) 格式
只要可能,同一类型的形参应当归并在一起: procedure
Foo(Param1,Param2,Param3:Imteger;Param4:string);
(2) 参数顺序
形参的顺序主要要考虑寄存器调用规则。最常用的参数应当作为第一个参数,按使用频率依次从左到右排。输入参数位于输出参数之前。范围大的参数应当放在范围小的参数之前。例如:
SomeProc(aPlanet, aContinent, aCountry, aState, aCity).
有些则例外。例如,在事件处理过程中,TObject 类型的Sender 参数往往是第一个要传递的参数。
(3) 常量参数
要使记录、数组、短字符串或接口类型的参数不能被过程修改,就应当把形参标以Const 。这样,编译器将以最有效的方式生成代码,保证传递的参数不可变。
如果其他类型的参数希望不被过程所修改,也可以标上Const 。尽管这对效率没有影响,但这给过程的调用者带来了更多的信息。
4). 变量
团结 求实 创新 高效 第 5 页
SeaLong SoftWare