.5 类型
□ 大小写规则 类型标识符是保留字,应当全部小写。Win32 API 类型常常全部大写,并且遵循诸如 Windows.pas 或其 他 API 单元中关于特定类型名的规则。对于其他变量名,第一个字母应大写,其他字母则大小写交错。下面 是一些例子: 局部 var MyString: string; // 保留字 或 sMyString: string; WindowsHandle: HWND; // Win32 API 类型 或 hWindowsHandle: HWND; ListIndex: Integer; 或 nListIndex: Integer; I: Integer; //在 System 单元中引入的类型标识 全局变量定义 G_Name: string 或 G_sName: string □ 浮点型 不鼓励使用 Real 类型,因为它只是为了与老的 Pascal 代码兼容而保留的。通常情况下,对于 浮点数应 当使用 Double。Double 可被处理器优化,是 IEEE 定义的标准的数据格式。当需要比 Double 提供的范围更 大时,可以使用 Extend。Extend 是 intel 专用的类型,
Java 不支持。当浮点变量的物理字节数很重要时(可能 使用其他语言编写 DLL),则应当使用 Single。 □ Variant 和 OleVariant 一般不建议使用 Variant 和 OleVariant。但是,当 数据类型只有在运行期才知道时(常常是在 COM 和数 据库应用的程序中),这两个类型对编程就有必要。当进行诸如自动化 ActiveX 控件的 COM 编程时, 应当使 用 OleVariant;而对于非 COM
编程,则应当使用 Variant。这是因为,Variant 能够有效地保存 Delphi 的原生 字符串,而 OleVariant 则将所有字符串转换为 OLE 字符串(即 WideChar 字符串),且没有引用计数功能。
2.2.6 语句
□ IF 语句 在 if/then/else 语句中,最有可能执行的情况应放在 then 子句中,不太可能的情况放在 else 子句中。为 了避免出现许多 if 语句,可以使用 case 语句代替。如果多于 5 级,不要使用 if 语句。请改用更清楚的方法。 不要在 if 语句中使用多余的括号。 如果在 if 语句中有多个条件要测试,应按照计算的复杂程度从右向左排。这样,可以使代码充分利用 编译器的短路估算逻辑。例如,如果 Condition1 比 Condition2 快,Condition2 比 Condition3 快,则 if 语句一 般应这样构造: if Condition1 and Condition2 and Condition3 then 如果 Condition3 为 False 的机会很大,利用短路估算逻辑,我们也可以将 Condition3 放在最前面:if Condition3 and Condition1 and Condition2 then □ Case 语句 case 语句中每种情况的常量应当按数字或字母的顺序排列。每种情况的动作语句应当简短且通常不超 过 4 - 5 行代码。如果动作太复杂,应将代码单独放在一个过程或函数中。Case 语句的 else 子句只用于默认 情况或错误检测。 case 语句遵循一般的缩进和命名规则。 □ While 语句 不要使用 Exit 过程来退出 while 循环。如果需要的话,应当使用循环条件退出循环。所有对 while 循环 进行初始化的代码应当位于 while 入口前,且不要被无关的语句隔开。任何业务的辅助
工作都应在循环后立 即进行。 □ For 语句 如果循环次数是确定的,应当用 for 语句代替 while 语句。 可以根据业务逻辑关系判断:1、for to do 2、for downto do □ Repeat 语句 repeat 语句类似于 while 循环,且遵循同样的规则。 □ With 语句 with 语句应小心使用。要避免过度使用 with 语句,尤其是在 with 语句中使用多个对象或记录。 不准使用此种情况:with Record1,Record2 do 这种情况很容易迷惑编程人员,且导致调试困难。 with 语句也遵循本章关于命名和缩进的规则。
2.2.7 结构化异常处理
□ 概述