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

Delphi代码的标准风格

作者:闵涛 文章来源:闵涛的学习笔记 点击数:2863 更新时间:2009/4/23 18:40:47
e of the first property in the
      Properties property. Calls the appropriate
      TProperty GetXxxValue method to retrieve the
      value.
    SetXxxValue Sets the value of all the properties
      in the Properties property. Calls the appropriate
      TProperty SetXxxxValue methods to set the value. }
    块注释通常被用在版权注释中。也被用来注释掉一些代码行。
    用于解释方法的用途的块注释应当被访在方法的声明前面。
    例如:
// CORRECT

{ TMyObject.MyMethod
  This routine allows you to execute code. }

procedure TMyObject.MyMethod;
begin
end;

// INCORRECT

procedure TMyObject.MyMethod;
{******************************************************
  TMyObject.MyMethod
  This routine allows you to execute code.
*******************************************************}
begin
end;
    第二种块注释包含了两个字符,括号和星号:(* *)。这有时被称为星括号注释。这些注释一般只在代码开发时有用,它的主要好处是允许嵌套注释,注释嵌套少于两层。Object Pascal不支持同类型的注释嵌套,因此事实上只有一层嵌套:花括号在星括号里面,或者星括号在花括号里面。 只要在你不嵌套它们时,在该类型的注释中的其它类型的标准Pascal注释将被忽略。因此,你可以使用该语法注释一大块既有代码又有注释的代码:

(* procedure TForm1.Button1Click(Sender: TObject);


begin
  DoThis; // Start the process
  DoThat; // Continue iteration
  { We need a way to report errors here, perhaps using
    a try finally block ??? }

  CallMoreCode; // Finalize the process
end; *)


    在本例中,整个Button1Click方法被注释掉了,包括其中的任何子注释。

5.2 单行注释
    单行注释由注释符//及其引导的文本组成,在文本和注释符之间有一个空格。单行注释同代码在不同行的,要同代码有相同的缩进层次。你可以使用多个单行注释形成大的注释。
    在单行注释或注释组之前要有一个空行,除非它是一个块的第一行。如果注释用于几条语句,那么注释和注释组之后要跟一个空行。如果注释仅解释它后面的一行声明,则不必跟一个空行。
例如:
// Open the database
Table1.Open;
    单行注释也可以跟在他们解释的代码声明后面。这类注释有时被引用为跟踪注释。在他们和代码之间至少要有一个空格。如果有多个跟踪注释在一个代码块中同时出现,那么这些注释需要被对齐。
例如:


if (not IsVisible) then
    Exit; // nothing to do
Inc(StrLength); // reserve space for null terminator


    要避免对每行可执行代码进行跟踪注释。在一个方法或函数的begin..end块之间限制使用注释、甚至让其为空,则在通常情况下是最好的。长的注释可以出现在方法、函数的定义之前的块注释当中。


6.1 类体的组织
    类体的组织应当遵循下列顺序:
    ·域/字段声明
    ·方法声明
    ·属性定义
    域/字段、属性、方法应当按它们的名称进行字母索引排列。
    6.1.1 存取级别
        除了由IDE生成的代码,类的范围指示符应当按以下顺序:
        ·private 声明
        ·protect声明
        ·public声明
        ·published声明
        在Object Pascal中,类成员有四种存取级别:发布的、公开的、受保护的和私有的--按存取能力递减的顺序排列。默认的存取级别是published。一般,一个成员应当被赋予最合适它的最低的存取级别。例如:只能在同一单元中被其他类存取的成员就应当被声明为私有的。同时,声明低存取级别的成员也给了编译器提高优化的机会。当然,另一方面,使用低存取级别对子类的扩展造成了困难。如果有理由认为某个类在将来某个时候会被子类化,那么应当将那些需要被子类继承扩展的成员声明为受保护的,用于存取私有数据的属性也可以提供这方面的保护。
        你应当禁止对数据的公开存取。数据通常在private段声明,任何对他的公开存取应当通过GetXXX、SetXXX方法或属性来操作。
    6.1.8 构造函数声明
        方法需要按字母索引排列。将构造函数和析构函数放在public段的开始或按照字母索引排列都是正确的。
        如果有多个构造函数或你使用了多个相同的名字,那么应当根据形参列表来排列,参数少的在参数多的前面。这意味着如果存在没有参数的构造函数的话,那么它必定出现在第一个。为了和C++Builder保持最好的兼容,应当保证构造函数的参数列表的唯一性。C++不是根据构造函数的名称来调用它的,所以区别多个构造函数的唯一方法是通过它的参数列表。

6.2 方法声明
    如果可能,方法声明要出现在单独一行上。
例如:
Examples:



procedure ImageUpdate(Image img, infoflags: Integer,
  x: Integer, y: Integer, w: Integer, h: Integer)




7.0 接口
    接口的声明与类的声明有相同的形式:


  InterfaceName = interface([inherited Interface])
    InterfaceBody
  end;


  接口声明应当被缩进两格,接口体缩进四格,end结束符缩进两格。
  在接口声明中没有域/字段。但属性可以出现。
  所有的接口方法天生就是公开的和抽象的,用不着在接口声明中包含此类关键字。
  除非有其他的注意事项,否则接口的声明同类的声明具有相同的风格。

7.1 接口体组织
    接口体的组织可以按以下的顺序:
    ·接口方法声明
    ·接口属性声明
    接口方法和属性的声明和类具有相同的风格。

8.0 声明
    声明是由封号结尾的一行或几行代码。单一声明只有一个封号,复合声明中有多个封号。
//这是单一声明:
A := B;

//这是复合声明:


begin
  B := C;
  A := B;
end;


    8.0.1 单一声明
        如果需要将一个单一声明换行,则需要参照上一行缩进两格。
//例如:


MyValue :=
  MyValue + (SomeVeryLongStatement / OtherLongStatement);




8.1.1 赋值和表达式声明
每一行最多有一条声明。
例如:


a := b + c; Inc(Count); //错误
a := b + c; //正确
Inc(Count); //正确




8.1.2 局部变量声明
    局部变量也使用驼峰格式,不要使用引导符"F",这是为类声明中域/字段保留的。
例如:


var
  MyData: Integer;
  MyString: string;


    你可以在同一行声明多个类型相同的变量:


var
  ArraySize, ArrayCount: Integer;


    这种声明习惯在类声明中是不提倡。

8.1.3 数组声明
    通常总是在左方括号之前和右方括号之后放置一个空格:


type
  TMyArray = array [0..100] of Char;




8.2.3 if语句
    if语句至少要以两行的形式出现:
例如:
//错误:


if A = B then DoSomething;



//正确


if A = B then
  DoSomething;


    如果是复合的if语句,则应当每个分隔符一个新行:
//错误:


if A = B then begin
  DoSomething;
  DoSomethingElse;
end else begin
  DoThis;
  DoThat

上一页  [1] [2] [3] [4] [5]  下一页


没有相关教程
教程录入: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……
    咸宁网络警察报警平台