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

首頁 > 編程 > Delphi > 正文

Delphi編碼標準——過程和函數

2019-11-18 18:36:30
字體:
來源:轉載
供稿:網友
過程和函數
1. 命名與格式
(1)過程名應當以大寫字母開始,且大小寫交錯以增加可讀性。
下面是一個不正確的寫法:
PRocedure thisisapoorlyformattedroutinename;
改成這樣寫就對了:
procedure ThisIsMuchMoreReadableRoutineName;
(2)過程名應當有意義。進行一個動作的例程最好在名稱前加上表示動作的動詞為前綴。
例如:
procedure FormatHardDrive;
設置輸入參數值的例程名應當以Set為其前綴,
例如:
procedure SetUserName;
獲取數值的例程名應當以Get為其前綴,
例如:
function GetUserName: string;
2. 形參
(1) 格式:只要可能,同一類型的形參應當歸并在一起。
例如:
procedure ProcedureName (Param1, Param2, Param3: Integer; Param4: string);
(2) 命名:所有形參的名稱都應當表達出它的用途。如果合適的話,形參的名稱最好以字母A為前綴。
例如:
procedure ProcedureName (AUserName: string; AUserAge: integer);
當參數名與類的特性或字段同名時,前綴A就有必要了。
(3) 參數順序:形參的順序主要要考慮寄存器調用規則。最常用的參數應當作為第一個參數,按使用頻率依次從左到右排。輸入參數位于輸出參數之前。范圍大的參數應當放在范圍小的參數之前。
例如:
procedure ProcedureName (APlanet, AContinent, ACountry, AState, ACity).
有些則例外。
例如:
在事件處理過程中,TObject類型的Sender參數往往是第一個要傳遞的參數。
(4) 常量參數:要使記錄、數組、短字符串或接口類型的參數不能被例程修改,就應當把形參標以Const。這樣,編譯器將以最有效的方式生成代碼,保證傳遞的參數不可變。
如果其他類型的參數希望不被例程所修改,也可以標上C o n s t。盡管這對效率沒有影響,但這給例程的調用者帶來了更多的信息。
(5) 命名沖突:當兩個單元中含有相同名稱的例程時,如果調用該例程,實際被調用的是Uses 子句中較后出現的那個單元中的例程。為避免這種情況,可在方法名前加想要的單元名,
例如:
SysUtils.FindClose (SR);
Windows.FindClose(Handle);
3.變量
(1) 變量的命名與格式:變量的名稱應當能夠表達出它的用途。
循環控制變量常常為單個字母,諸如I、J或K。也可以使用更有意義的名稱,例如UserIndex;
布爾變量名必須能清楚表示出True和False值的意義。
(2) 局部變量:局部變量用于例程內部,遵循其他變量的命名規則。如果需要的話,應當在例程的入口處立即初始化變量。
局部的AnsiString類型的變量自動被初始化為空字符串;
局部的接口和dispinterface類型的變量自動被初始化為nil;
局部的Variant和OleVariant類型的變量自動被初始化為Unassigned。
(3) 全局變量:一般不鼓勵使用全局變量。不過,有時候需要用到。即使如此,也應當把全局變量限制在需要的環境中。
全局變量可能只在單元的實現部分是全局的;
全局數據如果將由許多單元使用,就應移動到一個公用單元里被所有對象使用;
全局數據可在聲明時直接初始化為一個值。
(注意,所有全局變量自動進行零初始化,因此,不要將全局變量初始化為諸如0、nil、或Unassigned等空值。零初始化的全局變量在. EXE文件中不占空間。零初始化的數據保存在虛擬的數據段中,而虛擬數據段只在應用程序啟動時才分配內存。非零初始化的全局數據則在. E X E文件中占空間。)
4.類型
(1) 大小寫規則:類型標識符是保留字,應當全部小寫。Win32 API類型常常全部大寫,并且遵循諸如Windows.pas或其他API單元中關于特定類型名的規則。對于其他變量名,第一個字母應大寫,其他字母則大小寫交錯。
例如:
var
MyString: string;         // 保留字
WindowsHandle: HWND; // Win32 API 類型
I: Integer;              //在S y s t e m單元中引入的類型標識
(2)浮點型:不鼓勵使用Real類型,因為它只是為了與老的Pascal代碼兼容而保留的。通常情況下,對于浮點數應當使用Double。Double可被處理器優化,是IEEE定義的標準的數據格式。當需要比Double提供的范圍更大時,可以使用Extend。Extend是Intel專用的類型,java不支持。當浮點變量的物理字節數很重要時(可能使用其他語言編寫DLL ),則應當使用Single。
(3) 枚舉型:枚舉類型名必須代表枚舉的用途。名稱前要加T字符作為前綴,表示這是個數據類型。枚舉類型的標識符列表的前綴應包含2 ~ 3個小寫字符,來彼此關聯。
例如:
TSongType = (stRock, stClassical, stCountry, stAlternative, stHeavyMetal, stRB);
枚舉類型的變量實例的名稱與類型相同,但沒有前綴T,也可以給變量一個更加特殊名稱,諸如:FavoriteSongTpe1、FavoriteSongTpe2等等。
(4)Variant和OleVariant:
一般不建議使用Variant和OleVariant。但是,當數據類型只有在運行期才知道時(常常是在COM和數據庫應用的程序中),這兩個類型對編程就有必要。當進行諸如自動化ActiveX控件的COM編程時,應當使用OleVariant;而對于非COM編程,則應當使用Variant。這是因為, Variant能夠有效地保存Delphi的原生字符串,而OleVariant則將所有字符串轉換為OLE字符串(即Wide Char字符串),且沒有引用計數功能。
5.構造類型
(1) 數組類型:數組類型名應表達出該數組的用途。類型名必須加字母T為前綴。如果要聲明一個指向數組類型的指針,則必須加字母P為前綴,且聲明在類型聲明之前。
例如:
type
PCycleArray = ^TCycleArray;
TCycleArray=array [1..100] of integer;
實際上,數組類型的變量實例與類型名稱相同,但沒有T前綴。
(2)記錄類型:記錄類型名應表達出記錄的用途。類型名必須加字母T為前綴。如果要聲明一個指向記錄類型的指計,則必須加字母P為前綴,且其聲明在類型聲明之前。
例如:
type
PStudent = ^ TStudent;
TStudent = record
StudentName: string;
StudentAge: Double;
6.類
(1) 命名與格式
類的名稱應當表達出類的用途。類名前要加字母T,表示它是一個類型。
例如:
type
TStudent= class (TObject);
類的實例名稱與類名相同,只不過沒有前綴T。
var
Student: TStudent;
注意關于組件的命名,請參閱6.6節“組件”。
(2) 字段
命名與格式:字段的命名遵循與變量相同的規則,只不過要加前綴F,表示這是字段。
可見性:所有字段必須為私有。如果要在類的作用域之外訪問字段,可借助于類的屬性來實現。
(3) 方法
命名與格式:方法的命名遵循與過程和函數相同的規則。
靜態方法:當你不希望一個方法被派生類覆蓋時,應當使用靜態方法。
虛擬方法與動態方法:當你希望一個方法能被派生類覆蓋,應當使用虛擬方法。如果類的方法要被多個派生類直接或間接地使用,則應當用動態方法。
例如:某一個類含有一個被頻繁覆蓋的方法,并有100個派生類,則應將方法定義為動態的,這樣可以減少內存的開銷。
抽象方法:如果一個類要創建實例,則不要使用抽象方法。抽象方法只能在那些從不創建實例的基類中使用。
屬性訪問方法:所有屬性訪問方法應當定義在類的私有或保護部分。屬性訪問方法遵循與過程和函數相同的規則。用于讀的方法應當加G e t前綴,用于寫的方法應當加Set前綴,并且有一個叫Value的參數,其類型與屬性的類型相同。
例如:
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前綴。屬性名應為名詞,而不是動詞。屬性是數據,而方法是動作。數組屬性名應當是復數,而一般的屬性應當是單數。
(5) 訪問方法的使用
盡管不是必須,但還是建議你使用寫訪問方法來訪問代表私有字段屬性。

上一篇:在Delphi中動態生成QuickReport報表

下一篇:Delphi編碼標準——一般的源代碼格式規則

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

新聞熱點

疑難解答

圖片精選

網友關注

主站蜘蛛池模板: 国产区一二 | 99re国产精品视频 | 亚洲影视一区 | 国产精品视频综合 | 日本一区二区三区视频在线观看 | 国产精品久久久久桃色tv | 一区二区精品 | 日韩欧美www | 欧美亚洲视频 | 国产久精品| 色呦呦在线视频 | 欧洲三级在线 | 手机看片福利在线 | 999这里只有是极品 欧洲一区二区三区免费视频 | 最新中文字幕 | 国产在线一二三区 | 日韩专区在线播放 | 91综合网 | 丁香婷婷综合激情五月色 | 日韩和的一区二区 | 亚洲v日韩v综合v精品v | 亚洲精品一区二区三区在线 | 韩国三级中文字幕hd久久精品 | 亚洲精品9999 | 成人国产精品久久久 | 9久9久9久女女女九九九一九 | 国内精品视频在线观看 | 日本中文字幕一区二区 | 韩国三级中文字幕hd爱的色放 | 国产激情一区二区三区 | 在线观看毛片网站 | 欧美国产精品一区二区三区 | 日韩草比 | 亚洲精品在线看 | 日本一区二区视频在线观看 | 精品久久久久久国产 | 久久精品国产v日韩v亚洲 | 免费精品视频 | 天天色天天色 | 黄色免费在线观看网址 | 免费国产视频 |