資源描述:
《delphi代碼編寫規(guī)范.doc》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、預(yù)付費(fèi)組delphi代碼編寫規(guī)范目錄1.概述12.通用源代碼格式規(guī)則13.過程和函數(shù)24.變量24.1.變量命名及格式24.2.類型35.類45.1.命名及格式45.2.類中的屬性訪問(這點(diǎn)可以考慮是否加入)56.結(jié)構(gòu)化異常處理57.元件類型57.1.元件實(shí)例的命名規(guī)則58.窗體與對話框類型69.數(shù)據(jù)模塊類型710.文件71.概述本規(guī)范是根據(jù)網(wǎng)上一些資料整理而來,為了實(shí)用,只列出了一些重點(diǎn)。2.通用源代碼格式規(guī)則1).縮進(jìn)縮進(jìn)就是每級(jí)間有兩個(gè)空格。一般不要在源代碼中放置制表符。這是因?yàn)椋票矸膶挾入S著不同的設(shè)置和代碼管理實(shí)用程
2、序(打印、文檔及版本控制等)而不同。當(dāng)遇到begin或進(jìn)入判斷、循環(huán)、異常處理、with語句、記錄類型聲明、類聲明等的時(shí)侯增加一級(jí),當(dāng)遇到end或退出判斷、循環(huán)、異常處理、with語句、記錄類型聲明、類聲明等的時(shí)侯減少一級(jí)。2).begin...end語句begin語句必須單獨(dú)占一行。例如,下面第一行是錯(cuò)誤的,而第二行正確:fori:=0to10dobegin//錯(cuò),begin與for在同一行fori:=0to10do//對,begin在另外一行中begin本規(guī)則的一個(gè)特殊情況是,當(dāng)begin為else語句的一部分時(shí),例如:if
3、somestatement=thenbegin...endelsebeginSomeOtherStatement;end;注意:end語句總單獨(dú)一行。當(dāng)begin不為else語句的一部分時(shí),相應(yīng)的end語句與begin語句的縮進(jìn)量相同。3).注釋我們通常使用“{...}”類型的塊注釋,用“//”行注釋。每個(gè)函數(shù)、過程和全局變量(包括模塊內(nèi)全局變量)都必須有注釋,函數(shù)、過程的參數(shù)都必須說明。4).空格(這個(gè)是否可以取消) 在操作符及邏輯判斷符號(hào)的兩端一般要添加空格,例如:I:=I+1;,aandb等,但添加括號(hào)時(shí)不需要空格。例如
4、:if(a>b)then//錯(cuò)誤的用法If(a>b)then//正確的用法又例如:procedureTest(Param1:integer;Param3:string);1.過程和函數(shù)(1).格式過程名應(yīng)當(dāng)以大寫字母開始,且大小寫交錯(cuò)以增加可讀性。下面是一個(gè)不正確的寫法:procedurethisisapoorlyformattedroutinename;改成這樣寫就對了:procedureThisIsMuchMoreReadableRoutineName;(2).形參 所有參數(shù)必須是有意義的;并且當(dāng)參數(shù)名稱和其它屬性名稱重了
5、的時(shí)候,加一個(gè)前綴‘A’,例如:procedureSomeProc(AUserName:string;AUserAge:integer);2.變量2.1.變量命名及格式(1)命名前綴(這點(diǎn)可以考慮是否要加)字符串類型s??IntiDoubledDatetimedtBooleanbTDatasetdsTQueryqry……如:varsUsrName:string; 循環(huán)控制變量通常使用單一的字符如:i,j,或k。另外使用一個(gè)有意義的名字例如:UserIndex,也是準(zhǔn)許的?! ∈紫人凶兞勘仨毱鹩幸饬x的名字,使其它組員可以很容易
6、讀懂變量所代表的意義,變量命名可以采用同義的英文命名,可使用幾個(gè)英文單詞,但每一單詞的首字母必須大寫。例如:varsWriteFormat::string; 同時(shí)對于一些特定類型可采用一定的簡寫如下: 指針類型 P 紀(jì)錄類型 Rec 數(shù)組類型 Arr類 Class(2).全局變量全局?jǐn)?shù)據(jù)如果將由許多單元使用,就應(yīng)移動(dòng)到一個(gè)公用單元里被所有對象使用。全局?jǐn)?shù)據(jù)可在聲明時(shí)直接初始化為一個(gè)值?! ”M量不使用全局變量,如必須使用全局變量則必須加前綴‘G’,同時(shí)應(yīng)在變量名稱中體現(xiàn)變量的類型。例如
7、:GPRecUserCount:point;//名稱為UserCount的全局變量,其類型為指向一結(jié)構(gòu)的指針但是在模塊內(nèi)部可以使用全局變量。所有模塊內(nèi)全局變量必須用‘F’為前綴。如果幾個(gè)模塊之間需要進(jìn)行資料交換,則需要通過聲明屬性的方法來實(shí)現(xiàn)。例如:typeTFormOverdraftReturn=class(TForm)private{Privatedeclarations}F_sUserName:string;F_iUserCount:Integer;ProcedureSetUserName(Value:string);Fu
8、nctionGetUserName:string;public{Publicdeclarations}propertyUserName:stringreadGetUserNamewriteSetUserName;propertyUserCount:Integer