a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 編程 > Delphi > 正文

Delphi代碼風格約定

2019-11-18 18:39:09
字體:
來源:轉載
供稿:網友

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) thenbegin  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;

接口遵循相同規則


上一篇:如何為Delphi程序添加事件和事件處理器

下一篇:SGIP的delphi原碼

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
學習交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 黄色在线资源 | 皇上侵犯双性太子高h虐受视频 | 国产毛片毛片 | 欧美日韩综合精品 | 国产精品视频导航 | 亚洲国产精品麻豆 | 一级在线| 亚洲最大av网站 | 亚洲精品久久久久久久久久 | 国产传媒在线视频 | 特级淫片裸体免费看 | 亚洲成人一区 | 国产精品九九九 | 精品一区二区久久久久久久网站 | 福利精品在线观看 | 销魂美女一区二区三区视频在线 | 国产高清一级 | 狠狠狠干| 亚洲精品视频一区二区三区 | 99爱免费观看国语 | 欧美日韩国产一区二区三区不卡 | 国产高清自拍 | 黄视频网站免费观看 | 欧美一区二区三区在线观看 | 91麻豆精品国产91久久久久久久久 | 欧美亚洲性视频 | 婷婷丁香六月天 | 日本在线观看视频一区 | 中文字幕在线免费视频 | 成人在线看片网站 | 久久网日本| 99久久久无码国产精品 | 国产精品福利一区 | 午夜三区 | 久久精品一级 | 日韩在线观看三区 | 国产精品一区二区久久久久 | 青草青草 | 日韩成人在线播放 | 亚洲人人 | 在线观看欧美一区 |