麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > 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原碼

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: a级高清免费毛片av在线 | 亚洲精品一区国产精品丝瓜 | 亚洲欧洲日韩av | xxxx69hd一hd| 国产精品久久久久久久久久久久午夜 | 久久精品国产精品亚洲 | 久久影院一区二区三区 | 少妇一级淫片高潮流水电影 | 国产成人在线观看免费网站 | 天天夜碰日日摸日日澡性色av | 国产精品久久久乱弄 | 欧美一级做一级爱a做片性 久久久资源网 | 男男啪羞羞视频网站 | 91综合在线观看 | 日本欧美一区二区三区在线播 | 国产精品视频一区二区三区综合 | 久久久一区二区精品 | 久草手机在线观看视频 | 日本欧美在线播放 | 中国美女一级黄色大片 | 成人精品免费在线观看 | 欧美性猛交xxxxx按摩国内 | 草免费视频| 久久不射电影网 | 黄色男女视频 | 国产精品伦视频看免费三 | 国产一级大片在线观看 | 一级网站 | 亚洲午夜精品视频 | 国产精品免费久久久久久 | 在线播放免费播放av片 | 视频一区二区三区免费观看 | 欧美国产第一页 | 日本羞羞的午夜电视剧 | 羞羞视频免费网站含羞草 | 欧美一区二区三区不卡免费观看 | 美国黄色小视频 | 成人午夜一区二区 | 成人毛片一区 | 中国av中文字幕 | 欧美人人干 |