欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費電子書(shū)等14項超值服

開(kāi)通VIP
delphi編碼標準——過(guò)程和函數

 過(guò)程和函數

 

1. 命名與格式

(1)過(guò)程名應當以大寫(xiě)字母開(kāi)始,且大小寫(xiě)交錯以增加可讀性。

下面是一個(gè)不正確的寫(xiě)法:

procedure thisisapoorlyformattedroutinename;

改成這樣寫(xiě)就對了:

procedure ThisIsMuchMoreReadableRoutineName;

(2)過(guò)程名應當有意義。進(jìn)行一個(gè)動(dòng)作的例程最好在名稱(chēng)前加上表示動(dòng)作的動(dòng)詞為前綴。

例如:

procedure FormatHardDrive;

設置輸入參數值的例程名應當以Set為其前綴,

例如:

procedure SetUserName;

獲取數值的例程名應當以Get為其前綴,

例如:

function GetUserName: string;

2. 形參

(1) 格式:只要可能,同一類(lèi)型的形參應當歸并在一起。

例如:

procedure ProcedureName (Param1, Param2, Param3: Integer; Param4: string);

(2) 命名:所有形參的名稱(chēng)都應當表達出它的用途。如果合適的話(huà),形參的名稱(chēng)最好以字母A為前綴。

例如:

procedure ProcedureName (AUserName: string; AUserAge: integer);

當參數名與類(lèi)的特性或字段同名時(shí),前綴A就有必要了。

(3) 參數順序:形參的順序主要要考慮寄存器調用規則。最常用的參數應當作為第一個(gè)參數,按使用頻率依次從左到右排。輸入參數位于輸出參數之前。范圍大的參數應當放在范圍小的參數之前。

例如:

procedure ProcedureName (APlanet, AContinent, ACountry, AState, ACity).

有些則例外。

例如:

在事件處理過(guò)程中,TObject類(lèi)型的Sender參數往往是第一個(gè)要傳遞的參數。

(4) 常量參數:要使記錄、數組、短字符串或接口類(lèi)型的參數不能被例程修改,就應當把形參標以Const。這樣,編譯器將以最有效的方式生成代碼,保證傳遞的參數不可變。

如果其他類(lèi)型的參數希望不被例程所修改,也可以標上C o n s t。盡管這對效率沒(méi)有影響,但這給例程的調用者帶來(lái)了更多的信息。

(5) 命名沖突:當兩個(gè)單元中含有相同名稱(chēng)的例程時(shí),如果調用該例程,實(shí)際被調用的是Uses 子句中較后出現的那個(gè)單元中的例程。為避免這種情況,可在方法名前加想要的單元名,

例如:

SysUtils.FindClose (SR);

Windows.FindClose(Handle);

3.變量

(1) 變量的命名與格式:變量的名稱(chēng)應當能夠表達出它的用途。

循環(huán)控制變量常常為單個(gè)字母,諸如I、JK。也可以使用更有意義的名稱(chēng),例如UserIndex;

布爾變量名必須能清楚表示出TrueFalse值的意義。

(2) 局部變量:局部變量用于例程內部,遵循其他變量的命名規則。如果需要的話(huà),應當在例程的入口處立即初始化變量。

局部的AnsiString類(lèi)型的變量自動(dòng)被初始化為空字符串;

局部的接口和dispinterface類(lèi)型的變量自動(dòng)被初始化為nil;

局部的VariantOleVariant類(lèi)型的變量自動(dòng)被初始化為Unassigned。

(3) 全局變量:一般不鼓勵使用全局變量。不過(guò),有時(shí)候需要用到。即使如此,也應當把全局變量限制在需要的環(huán)境中。

全局變量可能只在單元的實(shí)現部分是全局的;

全局數據如果將由許多單元使用,就應移動(dòng)到一個(gè)公用單元里被所有對象使用;

全局數據可在聲明時(shí)直接初始化為一個(gè)值。

(注意,所有全局變量自動(dòng)進(jìn)行零初始化,因此,不要將全局變量初始化為諸如0、nil、或Unassigned等空值。零初始化的全局變量在. EXE文件中不占空間。零初始化的數據保存在虛擬的數據段中,而虛擬數據段只在應用程序啟動(dòng)時(shí)才分配內存。非零初始化的全局數據則在. E X E文件中占空間。)

4.類(lèi)型

(1) 大小寫(xiě)規則:類(lèi)型標識符是保留字,應當全部小寫(xiě)。Win32 API類(lèi)型常常全部大寫(xiě),并且遵循諸如Windows.pas或其他API單元中關(guān)于特定類(lèi)型名的規則。對于其他變量名,第一個(gè)字母應大寫(xiě),其他字母則大小寫(xiě)交錯。

例如:

var

MyString: string;         // 保留字

WindowsHandle: HWND; // Win32 API 類(lèi)型

I: Integer;              //S y s t e m單元中引入的類(lèi)型標識

(2)浮點(diǎn)型:不鼓勵使用Real類(lèi)型,因為它只是為了與老的Pascal代碼兼容而保留的。通常情況下,對于浮點(diǎn)數應當使用Double。Double可被處理器優(yōu)化,是IEEE定義的標準的數據格式。當需要比Double提供的范圍更大時(shí),可以使用Extend。ExtendIntel專(zhuān)用的類(lèi)型,Java不支持。當浮點(diǎn)變量的物理字節數很重要時(shí)(可能使用其他語(yǔ)言編寫(xiě)DLL ),則應當使用Single。

(3) 枚舉型:枚舉類(lèi)型名必須代表枚舉的用途。名稱(chēng)前要加T字符作為前綴,表示這是個(gè)數據類(lèi)型。枚舉類(lèi)型的標識符列表的前綴應包含2 ~ 3個(gè)小寫(xiě)字符,來(lái)彼此關(guān)聯(lián)。

例如:

TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);

枚舉類(lèi)型的變量實(shí)例的名稱(chēng)與類(lèi)型相同,但沒(méi)有前綴T,也可以給變量一個(gè)更加特殊名稱(chēng),諸如:FavoriteSongTpe1、FavoriteSongTpe2等等。

(4)VariantOleVariant

一般不建議使用VariantOleVariant。但是,當數據類(lèi)型只有在運行期才知道時(shí)(常常是在COM和數據庫應用的程序中),這兩個(gè)類(lèi)型對編程就有必要。當進(jìn)行諸如自動(dòng)化ActiveX控件的COM編程時(shí),應當使用OleVariant;而對于非COM編程,則應當使用Variant。這是因為, Variant能夠有效地保存Delphi的原生字符串,而OleVariant則將所有字符串轉換為OLE字符串(Wide Char字符串),且沒(méi)有引用計數功能。

5.構造類(lèi)型

(1) 數組類(lèi)型:數組類(lèi)型名應表達出該數組的用途。類(lèi)型名必須加字母T為前綴。如果要聲明一個(gè)指向數組類(lèi)型的指針,則必須加字母P為前綴,且聲明在類(lèi)型聲明之前。

例如:

type

PCycleArray = ^TCycleArray;

TCycleArray=array [1..100] of integer;

實(shí)際上,數組類(lèi)型的變量實(shí)例與類(lèi)型名稱(chēng)相同,但沒(méi)有T前綴。

(2)記錄類(lèi)型:記錄類(lèi)型名應表達出記錄的用途。類(lèi)型名必須加字母T為前綴。如果要聲明一個(gè)指向記錄類(lèi)型的指計,則必須加字母P為前綴,且其聲明在類(lèi)型聲明之前。

例如:

type

PStudent = ^ TStudent;

TStudent = record

StudentName: string;

StudentAge: Double;

6.類(lèi)

(1) 命名與格式

類(lèi)的名稱(chēng)應當表達出類(lèi)的用途。類(lèi)名前要加字母T,表示它是一個(gè)類(lèi)型。

例如:

type

TStudent= class (TObject);

類(lèi)的實(shí)例名稱(chēng)與類(lèi)名相同,只不過(guò)沒(méi)有前綴T。

var

Student: TStudent;

注意關(guān)于組件的命名,請參閱6.6組件。

(2) 字段

命名與格式:字段的命名遵循與變量相同的規則,只不過(guò)要加前綴F,表示這是字段。

可見(jiàn)性:所有字段必須為私有。如果要在類(lèi)的作用域之外訪(fǎng)問(wèn)字段,可借助于類(lèi)的屬性來(lái)實(shí)現。

(3) 方法

命名與格式:方法的命名遵循與過(guò)程和函數相同的規則。

靜態(tài)方法:當你不希望一個(gè)方法被派生類(lèi)覆蓋時(shí),應當使用靜態(tài)方法。

虛擬方法與動(dòng)態(tài)方法:當你希望一個(gè)方法能被派生類(lèi)覆蓋,應當使用虛擬方法。如果類(lèi)的方法要被多個(gè)派生類(lèi)直接或間接地使用,則應當用動(dòng)態(tài)方法。

例如:某一個(gè)類(lèi)含有一個(gè)被頻繁覆蓋的方法,并有100個(gè)派生類(lèi),則應將方法定義為動(dòng)態(tài)的,這樣可以減少內存的開(kāi)銷(xiāo)。

抽象方法:如果一個(gè)類(lèi)要創(chuàng )建實(shí)例,則不要使用抽象方法。抽象方法只能在那些從不創(chuàng )建實(shí)例的基類(lèi)中使用。

屬性訪(fǎng)問(wèn)方法:所有屬性訪(fǎng)問(wèn)方法應當定義在類(lèi)的私有或保護部分。屬性訪(fǎng)問(wèn)方法遵循與過(guò)程和函數相同的規則。用于讀的方法應當加G e t前綴,用于寫(xiě)的方法應當加Set前綴,并且有一個(gè)叫Value的參數,其類(lèi)型與屬性的類(lèi)型相同。

例如:

TStudent = class (TObject)

private

FName: string;

protected

function GetName: string;

procedure SetName (Value: string);

public

property Name: string read GetName write SetName;

end;

(4) 屬性

屬性作為私有字段的訪(fǎng)問(wèn)器,遵循與字段相同的命名規則,只不過(guò)沒(méi)有F前綴。屬性名應為名詞,而不是動(dòng)詞。屬性是數據,而方法是動(dòng)作。數組屬性名應當是復數,而一般的屬性應當是單數。

(5) 訪(fǎng)問(wèn)方法的使用

盡管不是必須,但還是建議你使用寫(xiě)訪(fǎng)問(wèn)方法來(lái)訪(fǎng)問(wèn)代表私有字段屬性。

本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請點(diǎn)擊舉報。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
代碼書(shū)寫(xiě)規范
C#項目代碼規范
Delphi 程序員代碼編寫(xiě)標準指南
『Delphi園地』
【TUXEDO 函數 說(shuō)明 (中文)】
總結C#語(yǔ)言命名規范
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導長(cháng)圖 關(guān)注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服

欧美性猛交XXXX免费看蜜桃,成人网18免费韩国,亚洲国产成人精品区综合,欧美日韩一区二区三区高清不卡,亚洲综合一区二区精品久久