Delphi 程序员代码编写标准指南(9)
2008-04-09 04:31:46来源:互联网 阅读 ()
3.5.2 结构类型
3.5.2.1 数组类型
数组类型的名字需符合它们使用的目的。该类型的名字必须加以前缀t。如果须声明该数组类型的指针,那么该指针需加以前缀p而且应立即声明在该数组声明的前面。例如:
type
pcyclearray = ^tcyclearray;
tcyclearray = array[1…100] of integer;
在实际应用中,数组的变量实例的名称应是其类型的名字去掉前缀t。
3.5.2.2 记录类型
记录类型的名字应符合使用它们的目的。其类型的声明应加以前缀t。如果要声明该记录类型的指针,就应加以前缀p并且应紧靠在类型声明的前面声明。例如:
type
pemployee = ^temployee;
temployee = record
employeename : string;
employeerate : double;
end;
3.6 语句
3.6.1 if 语句
在if/then/else语句中最常发生的行为应放在then子句中,而其它发生可能性较小的行为应放在else子句中。
尽量避免使用嵌套的if语句,在这种情形下应用多个if语句来判断各种可能。
不要使用if嵌套超过五级深度。应使代码编写得更加清晰、明了。
不要在if语句中使用不必要的圆括号。
如果在if语句中有多个条件需测试,这些条件应按计算强度由少到多的顺序从左到右排列。这样做能使编译器在编译代码时获得布尔估算逻辑的捷径,从而使你的代码获得最佳的优化。举例来说,如果条件1快过条件2,而条件2快过条件3,那么在if语句中的排列应是:
if 条件1 and 条件2 and 条件3 then
3.6.2 case 语句
3.6.2.1 一般性话题
在一个case语句中的各个独立的单元应以数字或字母顺序排列。
每一个case单元的动作行为应保持简单而不应该超过四到五行代码。如果所要执行的动作过于复杂应采用独立的过程或函数。
case语句中的else子句只有当需要缺省行为或处理错误时才使用。
3.6.2.2 格式
case语句应遵循其它结构的缩格和命名约定。
3.6.3 while 语句
在一个while语句中不建议使用exit过程来跳出循环,尽量仅使用循环条件来跳出循环。
在一个while循环中所用的初始化代码应紧靠在进入while循环前面出现而不要被其它不相关的语句隔开。
任何结束后的处理应在循环之后立即进行。
3.6.4 for 语句
for语句只有当循环次数已知的情况下才能取代while语句使用。
3.6.5 repeat 语句
repeat语句的使用同while语句一样,并且遵循同样的通用方针。
3.6.6 with 语句
3.6.6.1 一般话题
with语句应节省使用,并且带有大量的警告。避免过度使用with语句并且在with语句中小心使用多个对象、记录等等。例如:
with record1, record2 do
这些事情会使程序员感到困惑并难以发现问题所在。
3.6.6.2 格式
with 语句遵循本文档所说明的命名约定和缩格的格式规则。
3.7 结构异常处理
3.7.1 一般话题
异常的处理大量地使用在错误纠正和资源保护方面。这就是说一旦资源被分配,一个try…finally必需加以使用来保证该资源被正确的释放。这种异常的保护也是指在一个单元的initializition/finalization或一个对象的constructor/destructor中进行资源的分配和释放。
3.7.2 try…finally的使用
任何情形下,每一次的分配都应跟随一个try…finally。举例来说,下面的代码会造成可能的错误:
someclass1 := tsomeclass.create;
someclass2 ;= tsomeclass.create;
try
{ do some code }
finally
someclass1.free;
someclass2.free;
end;
一个更安全更合适的分配过程应是:
someclass1 := tsomeclass.create;
try
someclass2 := tsomeclass.create;
try
{ do some code }
finally
someclass2.free;
end;
finally
someclass1.free;
end;
3.7.3 try…except的使用
只有当在异常被触发而你想执行一些任务时才使用try…except。通常,你没有必要为了只是简单地在屏幕上显示一个错误信息而使用try…except语句,因为这会被application对象自动执行。如果你想在except子句中执行完一些任务之后调用缺省的异常处理,使用raise来重新触发异常到下一个句柄。
3.7.4 try…except…else的使用
try…except中的else子句不建议使用,因为它会打断所有的异常包括那些你没有准备的异常。
3.8 类类型
3.8.1 命名和格式
类类型的名称应符合使用它们的目的。类型名字应加以前缀t以表明这是一个类型的定义 - 例如:
type
tcustomer = class(tobject)
类型的实例通常是没有前缀t的类型的名字 - 例如:
var
customer :tcustomer;
注意:查阅“构件类型的命名标准”来获得更多有关构件命名的信息。
3.8.2 域
3.8.2.1 命名/格式
类的域名遵循与变量标识符同样的约定除了它们应以f为前缀,来表明这是一个域的名称。
3.8.2.2 可视化
所有的域都必需是私有的。想在类的范围之外存取域得通过属性来使用。
3.8.3 方法
3.8.3.1 命名/格式
方法的命名应遵循本文档中有关过程和函数的约定叙述。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- Delphi 程序员代码编写标准指南 (三) 2008-04-09
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash
