网站导航免费论文 原创论文 论文搜索 作业答案 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 交易代码 > Delphi精品代码 > 正文
代码风格约定Delphi
来源:Http://myeducs.cn 联系QQ:3710167 作者: Admin 发布时间: 09/09/01

  注:很多用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

  空白的使用

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

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

  不应插入空格的位置:

  方法名和其后的左括弧间

  .的前后

  一元运算符和其操作数间

  左括弧后和右括弧前

  分号前

  正确的例子:

  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;

  接口遵循相同规则

  • 上一篇资讯: 仓库管理信息系统
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 电话:013007313683 QQ:3710167 邮箱:Educs@163.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 Www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号