文档介绍:Delphi开发指南——编码标准文档
版权所有? 1998 Xavier Pacheco 及 Steve Teixeira
翻译 2000 李颖(e.******@)
目录
.导言
.一般源代码格式规范
缩进
页宽
,下面的第1行是错误的,第2行是正确的:
for I := 0 to 10 do begin // 错误,begin 和 for 在同一行
for I := 0 to 10 do // 正确,begin 单独作为一行 begin
当begin作为else子句的一部分时例外,比如:
if some statement = then
begin
end
else begin
SomeOtherStatement;
end;
end语句永远单独作为一行.
如果begin语句不是else子句的一部分,相应的end语句应该缩进到与beg
in对齐的位置.
Object Pascal 语言
括号
左括号和后一个字符之间不应该出现空格,同样,右括号和前一个字符之间也不
:
CallProc( AParameter ); // 错误
CallProc(AParameter); // 正确
.下面的例子说明错误和正确的用法:
if (I = 42) then //错误-括号毫无意义
if (1 = 42) or (J = 42) then//正确-的确需要括号
保留字和关键字
Object Pascal语言保留字和关键字应该完全小写.
过程和函数(子程序)
命名规则
子程序名应该以大写字母开头,:
procedure thisisapoorlyformattedroutinename;
下面是一个首字母适当大写的子程序名:
procedure ThisIsMuchMoreReadableRoutineName;
前缀命名,例如:
procedure FormatHardDrive;
为输入参数赋值的子程序应该以Set为前缀命名,例如:
procedure SetUserName;
取回数值的子程序应该以Get为前缀命名,例如:
function GetUserName: string;
形参(Formal Parameters)
格式
在可能的情况下,同类型的形参应该在一条语句中说明:
procedure Foo(Paraml, Param2, Param3: Integer; Param4: string);
命名
所有的形参名称应该具有与其用途相关的含义,而且不应该基于传递到了程序的 ,参数名应该以字符A为前缀,例如,
procedure SomeProc(AUserName: string; AUserAge: integer);
使用前缀"A"是一种约定,以便参数名与类的属性名、域名重复时消除歧义.
参数顺序
下面的形参顺序主要是为在寄存器模式下得到更高的性能,寄存器模式是惯用的调 用模式.
调用者最常使用的参数应该在参数的最前位置,使用越少的参数,其位置应该越在右 面.
输入参数队列应该在输出参数队列的左面.
最抽象参数应该在最精确参数的左面,例如:SomeProc(APlanet, AContinent, ACountry, AState, ACity).
参数顺序规则也可能出现例外情况,比如事件响应程序(event handlers),名为Sender 的TObject类型参数通常作为第一个参数.
常数参数(Constant Parameters)
当记录,数组,ShortString,或接口 (interface)类型参数在子程序中不被修改,则相应 的.
其他类型的参数如果在子程序中不被修改,, 但至少为了程序的调用者提供了更多关于参数使用的信息.
命名冲突
如果引用的2个单元中包含同名子程序,则实际调用的将是在uses子句中位置最后 (uses-clause-dependent ambiguities),应该用单元名作为前缀来指明所调用的子程序, 例如:
(SR);
或
Wi