网站建设| 数据库类| 图形图象| 程序设计| 现代办公| 操作系统| 考试认证| 网络技术| 软件工程| 电脑相关| 文学作品
网站开发| 网页制作| 操作系统| 图象图形| 考试认证| 数据库类| 程序设计| 硬件技术| 现代办公| 网络技术| 笑话频道
 
您的位置: 电脑书库首页-> 电脑文摘-> 程序设计-> Delphi/Pascal-> Delphi代码风格约定

Delphi代码风格约定
作者:佚名 来源:InterNet 加入时间:2004-11-25
相关文章 相关书籍:

Delphi代码风格约定

qingrui li 据Charles Calvert的Object Pascal Style Guide编注

注:很多用Delphi的人不注意代码风格,经常写一些不规范的代码,以致别人很难看懂且容易出错。希望本文能鼓励广大Delphi爱好者统一到标准风格,共同前进。

本文描述了格式化Delphi代码的标准风格。次风格基于Delphi开发组的编码约定。我们承认很多流行的源码使用了不同于我们的风格,但是我们强烈推荐在公共源码社区使用Borland风格。

Delphi是个漂亮的语言,优点中重要的一条即是可读性。本标准为增强可读性设计。当开发者遵循本标准,所有开发者将从统一易读的风格中受益。强化风格标准的努力可以提高源程序的价值,尤其在调试和维护周期。

InfixCaps命名风格

又叫CamelCaps,名字由几个表达意义的词组成,每个词的首字母大写,其余小写。

如:MyFile,IntToStr,Items。

Delphi不使用匈牙利表示法,而推荐意义明确的名字。如用AppName而非lpszAppName,用Successful而非bSuccess,用ClientRect而非lprectClientRect。

源文件命名

使用InfixCaps形式。如果转译C/C++头文件,则使用与原头文件相同的名字。如果需要将多个头文件合并到一个单元,则使用主要头文件的名字,如:WinBase.h、Windows.h合并为Windows.pas。

命名约定

除了保留字和指示字全部小写,其它标识符使用InfixCaps风格。

注:最近似乎倾向于局部变量和形式参数使用简单的小写或缩写词。

例外是转译头文件的标识符保留原风格。

类型名都以T打头(Type的首字母)

函数、过程、方法名使用动词或动词短语,其它标识符使用名词或名词短语。

类数据成员以F打头(Field的首字母)

枚举类型成员前冠以小写的类型缩写,一般两个字母,例:

  TBitBtnKind = (bkCustom, bkOK, bkCancel, bkHelp, 
    bkYes, bkNo, bkClose, bkAbort, bkRetry, 
    bkIgnore, bkAll);

返回布尔值的函数以Is打头,例:IsVisible、IsResizable

空白的使用

在适当位置插入空行,分隔代码的不同部分,如类声明间、函数实现间等。

使用空格的位置:标点的右边,二元运算符的两边

不应插入空格的位置:

  1. 方法名和其后的左括弧间
  2. .的前后
  3. 一元运算符和其操作数间
  4. 左括弧后和右括弧前
  5. 分号前

正确的例子:

function TMyClass.MyFunc(var Value: Integer);
MyPointer := @MyRecord;
MyClass := TMyClass(MyPointer);
MyInteger := MyIntegerArray[5];

错误的例子:

function TMyClass.MyFunc( var Value: Integer ) ;
MyPointer := @ MyRecord;
MyClass := TMyClass ( MyPointer ) ;
MyInteger := MyIntegerArray [ 5 ] ;

缩进

应使用两个空格的缩进,不要使用Tab字符。

begin...end间的代码要缩进,begin...end本身不缩进

续行时缩进两个空格

正确的例子:

function CreateWindowEx(dwExStyle: DWORD; 
  lpClassName: PChar; lpWindowName: PChar; 
  dwStyle: DWORD; X, Y, nWidth, nHeight: Integer;
  hWndParent: HWND; hMenu: HMENU; hInstance: HINST; 
  lpParam: Pointer): HWND; stdcall;

if ((X = Y) or (Y = X) or
  (Z = P) or (F = J) then
begin
  S := J;
end;
while (LongExpression1 or LongExpression2) do 
begin
  // DoSomething
  // DoSomethingElse;
end;

if (LongExpression1) or 
  (LongExpression2) or 
  (LongExpression3) then 

类声明安下列顺序组织

  • 数据域

  • 方法

  • 属性

访问层次安下列顺序组织,但IDE自动生成的代码是例外

  • Private declarations
  • Protected declarations
  • Public declarations
  • Published declarations

构造函数和析构函数声明在方法声明的前面。由于TObject.Destroy是虚函数且TObject.Free调用的是Destroy,所以析构函数不要用其它的名字。构造函数可以用除Create外的名字,但一般最好统一用Create。

例:

  TMyClass = class(TObject)
  private
  protected
  public
  published
  end;

数据应该只在私有部分声明,并以F打头(Field的首字母)。

type
  TMyClass = class(TObject)
  private
    FMyData: Integer;
    function GetData: Integer;
    procedure SetData(Value: Integer);
  public
  published
    property MyData: Integer read GetData write SetData;
  end;

接口遵循相同规则



[文章录入员:fightter]

相关文章 相关书籍:
本站推荐内容

近期主机类热搜关键词:
美国服务器 美国服务器租用 海外服务器租用 国外服务器租用

Delphi/Pascal
C/C++/VC
C++Builder
Basic/VB类
Delphi/Pascal
Java编程
FORTRAN
其它
电脑教程阅读排行
·DELPHI下的多线程程序设计(...
·Delphi与Excel的亲密接...
·Delphi实现串口通信的常用的...
·Delphi中初始化.Ini文件...
·Delphi中用于读写(I/O)...
·谈谈Delphi中的类和对象
·Delphi编译错误中文手册
·Delphi中关于TApplic...
·OPENGL图形程序设计
·SQL的基本操作