转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
Delphi编码标准——过程和函数         ★★★★

Delphi编码标准——过程和函数

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1168 更新时间:2009/4/23 18:38:23

过程和函数

1. 命名与格式

(1)过程名应当以大写字母开始,且大小写交错以增加可读性。

下面是一个不正确的写法:

procedure thisisapoorlyformattedroutinename;

改成这样写就对了:

procedure ThisIsMuchMoreReadableRoutineName;

(2)过程名应当有意义。进行一个动作的例程最好在名称前加上表示动作的动词为前缀。

例如:

procedure FormatHardDrive;

设置输入参数值的例程名应当以Set为其前缀,

例如:

procedure SetUserName;

获取数值的例程名应当以Get为其前缀,

例如:

function GetUserName: string;

2. 形参

(1) 格式:只要可能,同一类型的形参应当归并在一起。

例如:

procedure ProcedureName (Param1, Param2, Param3: Integer; Param4: string);

(2) 命名:所有形参的名称都应当表达出它的用途。如果合适的话,形参的名称最好以字母A为前缀。

例如:

procedure ProcedureName (AUserName: string; AUserAge: integer);

当参数名与类的特性或字段同名时,前缀A就有必要了。

(3) 参数顺序:形参的顺序主要要考虑寄存器调用规则。最常用的参数应当作为第一个参数,按使用频率依次从左到右排。输入参数位于输出参数之前。范围大的参数应当放在范围小的参数之前。

例如:

procedure ProcedureName (APlanet, AContinent, ACountry, AState, ACity).

有些则例外。

例如:

在事件处理过程中,TObject类型的Sender参数往往是第一个要传递的参数。

(4) 常量参数:要使记录、数组、短字符串或接口类型的参数不能被例程修改,就应当把形参标以Const。这样,编译器将以最有效的方式生成代码,保证传递的参数不可变。

如果其他类型的参数希望不被例程所修改,也可以标上C o n s t。尽管这对效率没有影响,但这给例程的调用者带来了更多的信息。

(5) 命名冲突:当两个单元中含有相同名称的例程时,如果调用该例程,实际被调用的是Uses 子句中较后出现的那个单元中的例程。为避免这种情况,可在方法名前加想要的单元名,

例如:

SysUtils.FindClose (SR);

Windows.FindClose(Handle);

3.变量

(1) 变量的命名与格式:变量的名称应当能够表达出它的用途。

循环控制变量常常为单个字母,诸如I、J或K。也可以使用更有意义的名称,例如UserIndex;

布尔变量名必须能清楚表示出True和False值的意义。

(2) 局部变量:局部变量用于例程内部,遵循其他变量的命名规则。如果需要的话,应当在例程的入口处立即初始化变量。

局部的AnsiString类型的变量自动被初始化为空字符串;

局部的接口和dispinterface类型的变量自动被初始化为nil;

局部的Variant和OleVariant类型的变量自动被初始化为Unassigned。

(3) 全局变量:一般不鼓励使用全局变量。不过,有时候需要用到。即使如此,也应当把全局变量限制在需要的环境中。

全局变量可能只在单元的实现部分是全局的;

全局数据如果将由许多单元使用,就应移动到一个公用单元里被所有对象使用;

全局数据可在声明时直接初始化为一个值。

(注意,所有全局变量自动进行零初始化,因此,不要将全局变量初始化为诸如0、nil、或Unassigned等空值。零初始化的全局变量在. EXE文件中不占空间。零初始化的数据保存在虚拟的数据段中,而虚拟数据段只在应用程序启动时才分配内存。非零初始化的全局数据则在. E X E文件中占空间。)

4.类型

(1) 大小写规则:类型标识符是保留字,应当全部小写。Win32 API类型常常全部大写,并且遵循诸如Windows.pas或其他API单元中关于特定类型名的规则。对于其他变量名,第一个字母应大写,其他字母则大小写交错。

例如:

var

MyString: string;         // 保留字

WindowsHandle: HWND; // Win32 API 类型

I: Integer;              //在S y s t e m单元中引入的类型标识

(2)浮点型:不鼓励使用Real类型,因为它只是为了与老的Pascal代码兼容而保留的。通常情况下,对于浮点数应当使用Double。Double可被处理器优化,是IEEE定义的标准的数据格式。当需要比Double提供的范围更大时,可以使用Extend。Extend是Intel专用的类型,Java不支持。当浮点变量的物理字节数很重要时(可能使用其他语言编写DLL ),则应当使用Single。

(3) 枚举型:枚举类型名必须代表枚举的用途。名称前要加T字符作为前缀,表示这是个数据类型。枚举类型的标识符列表的前缀应包含2 ~ 3个小写字符,来彼此关联。

例如:

TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);

枚举类型的变量实例的名称与类型相同,但没有前缀T,也可以给变量一个更加特殊名称,诸如:FavoriteSongTpe1、FavoriteSongTpe2等等。

(4)Variant和OleVariant:

一般不建议使用Variant和OleVariant。但是,当数据类型只有在运行期才知道时(常常是在COM和数据库应用的程序中),这两个类型对编程就有必要。当进行诸如自动化ActiveX控件的COM编程时,应当使用OleVariant;而对于非COM编程,则应当使用Variant。这是因为, Variant能够有效地保存Delphi的原生字符串,而OleVariant则将所有字符串转换为OLE字符串(即Wide Char字符串),且没有引用计数功能。

5.构造类型

[1] [2]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台