|
1.4 大小写
所有的自定义名称中的每个单词的首字母要使用大写,其它字母使用小写。Delphi保留字和关键字要全部使用小写。Delphi预定义函数的写法与自定义名称写法相同。Delphi中的基本数据类型要使用小写,扩展的类类型要的前两个字母要大写(类类型的首字母是“T”)。下面是一些例子:
1. 自定义名称:MyFavouriteSong, CarList;
2. 保留字:if (a = b) and ((a = c) or (a = d)) then … end;
3. Delphi预定义函数:ShowMessage(''''Everything all right'''');
4. Delphi扩展类类型:MyStrings = TStrings.Create;
1.5 注释
Delphi支持两种注释:块注释({})和单行注释(//)。注释的作用是为了解释程序的设计思路,帮助程序员尽快明白两年前甚至昨天写的程序的思路。这实际上是为了解决记忆问题,大脑不该被过分作为存储器使用,在程序设计中永远不要过分依赖大脑,而要尽可能借助文字。所以说,注释在程序设计语言中是十分重要的方面,尽管很多人(尤其是初学者,也包括相当数量的程序员)对此毫不介意,他们很少写注释。注释的另外一个应用是在程序调试阶段,比如说有两个语句,事先并不知道哪一个更好,于是需要测试:将一条语句前放置"//"(也就是说将这条语句改为注释),运行另一条语句,然后再做相反的工作,我们就可以轻松做出选择。如果是一组语句,那就用块注释,但一定注意要将"{"和"}"放在显眼的位置,比如说放在单独的上下两行。下面是一些使用原则:
1. 多数情况下,在自定义变量、类型的前面放置注释是有必要的。
2. 多数情况下,在单元文件顶部放置注释是必要的。在此,注释中要包含:文件名、创建日期、修改日期、作者、修改作者以及必要的描述。
3. 注释要有意义,不要使用没用的注释。比如:
while i < 8 do
begin
…
i:= i + 1; //Add one to i
end;
注释“//Add one to i”在此是毫无意义的,当然并不是说简单的语句(类似于:i : = i + 1)就不需要注释。因为简单的语句往往会起到十分重要的作用,所以,如果这条语句会使人产生疑问或者让人难以理解,那么就要将此语句的作用标记下来。
4. 不要试图在注释中创建组合图案,除非你认为这十分必要。因为在保持图案完整美观的情况下修改注释是非常困难的。。
5. 要区分临时注释和永久注释,你可以用你的方法在注释中放置特殊符号来区分。这样的好处是易于查找。
6. 对语句的更改要映射到相应的注释中。
7. 注释与代码间要留有明显的间隔,要一眼就能够分清楚哪是语句哪是注释。可以将注释放在代码行的前一行、后一行或留有至少两个空格紧跟在代码的后面,但是在代码与注释在同一行时不要使代码跟在注释的后面,另外,不要将在注释放在代码中间。
2. 语句
2.1 begin…end语句
begin和end语句要独占一行,begin要与上一层的第一个字母对齐,也就是说在换行之后不要留任何空格而直接写begin,end要与所对应的begin对齐。本规则可以用在任何地方。下面是正确的写法:
for i:= 1 to 10 do
begin
…
end;
但在if语句中有个特例,如下:
if Condition then
begin
…
end
else begin
…
end;
这样写的原则是要保证程序足够紧凑。语句分层的好处是使我们面对一个清晰的程序段,但是过分的、不尽合理的分层会使程序过于松散,这同样是需要避免的。
2.2 if语句
将最有可能执行的情况放在then语句中,不太可能的情况放在else子句中。这样对维护来说不会带来多少帮助,但会使程序效率更高。
多级if语句的可读性不强,所以应经尽能避免出现多级if语句。当多于5级时,就该考虑使用case语句代替if语句。
不要在if语句中使用不必要的括号。在源代码中,括号除了语法作用外在就是在必要时对条件分段,以增加程序的可读性。所以在if语句中,如果条件明了而且在语法上不需要括号,那么就不要使用括号;如果条件过于复杂,那么就使用几个括号。总之,一切为了清晰。
如果在if语句中有多个条件要测试,应按照计算的复杂度进行排列。比如有三个条件:Condition1、Condition2和Condition3。按照这个顺序,复杂度依次上升,与就是说Condition1比Condition2快,Condition2比Condition3快,则if语句就这么写:
if Condition1 and Condition2 and Condition3 then
begin
…
end;
2.3 case语句
case语句中每种情况的常量应当按照字母或数字的顺序排列。
每种情况的处理与语句不要行数太多,因为这样会使整个case语句过长。应该尽量使用过程或函数以减少case语句的复杂度。
case语句的else子句只用于处理默认情况或进行错误检测。
2.4 for语句
循环语句共有三种:for语句、while语句和repeat语句。如果循环次数确定,那么就使用for语句;如果在第一次循环之前要实现执行一次以获得初始比较数值,那么就使用repeat语句;其他情况基本上都可以使用while语句。实际上这三条语句可以覆盖所有的循环需要,而且可以互相替代。
在Delphi中要注意,for语句中的循环变量不可以在循环体中被赋值。这是与Turbo Pascal不同的地方。
另外,在循环语句,尤其是多个循环嵌套使用的代码中,要小心使用break和exit关键字。
2.5 while语句
建议不要使用exit来退出while循环。退出循环的最好方法是通过循环条件。如果在循环体中要考虑到意外处理,那么就要搞清楚处理的方式和对相关变量的影响。
2.6 repeat语句
repeat语句类似于while语句,且遵循同样的规则。
2.7 with语句
with语句是一类非常容易出错的语句,使用with语句可以有效避免重复的输入工作。但是这样会使程序难以检查。所以,不要随便使用with语句,而且绝对不要使用带有两个或多于两个对象或记录的with语句。顺便提一下,尽量不要随便使用with语句的原因不是因为易于出错,而是因为难以排错。考虑下面的例子:
with Label1, Label2 do
上一页 [1] [2] [3] [4] 下一页 [Web开发]VB.NET/ASP.NET编码规范(ZT)
|