變量命名的方法采用匈牙利命名法,基本結(jié)構(gòu)為
scope_typeVariableName
,它使用
3
字符前綴來表示數(shù)據(jù)類型,
3
個(gè)字符的前綴必須小寫,前綴后面是由表意性強(qiáng)的一個(gè)單詞或多個(gè)單詞組成的名字,而且每個(gè)單詞的首寫字母大寫,其它字母小寫,這樣保證了對(duì)變量名能夠進(jìn)行正確的斷句。例如,定義一個(gè)整形變量,用來記錄文檔數(shù)量:
intDocCount
,其中
int
表明數(shù)據(jù)類型,后面為表意的英文名,每個(gè)單詞首字母大寫。這樣,在一個(gè)變量名就可以反映出變量類型和變量所存儲(chǔ)的值的意義兩方面內(nèi)容,這使得代碼語句可讀性強(qiáng)、更加容易理解。
byte
、
int
、
char
、
long
、
float
、
double
、
boolean
和
short
。
變量類型和首字母對(duì)照關(guān)系如下表:
數(shù)據(jù)類型
/
對(duì)象類型
|
變量前綴
|
備注
|
byte |
bye |
|
char |
chr |
|
float |
flt |
|
boolean |
bln |
做布爾變量時(shí),使用
bln |
Integer/int |
int |
|
String |
str |
|
Single |
sng |
|
short |
sht |
|
Long/long |
lng |
|
Double/double |
dbl |
|
Currency |
cur |
|
Variant |
bln? astr? obj? vnt |
做布爾變量用時(shí),用
bln
;
做字符串?dāng)?shù)組用時(shí),用
astr
;
做為對(duì)象使用時(shí),用
obj
不確定時(shí),用
vnt
。
|
對(duì)于數(shù)組,在數(shù)據(jù)類型的前綴前再增加一個(gè)
a
,例如字符串?dāng)?shù)組為
astr
。對(duì)于在多個(gè)函數(shù)內(nèi)都要使用的全局變量,在前面再增加“
g_
”。例如一個(gè)全局的字符串變量:
g_strUserInfo
。
在變量命名時(shí)要注意以下幾點(diǎn):
?????????
選擇有意義的名字,注意每個(gè)單詞首字母要大寫
?????????
在一段函數(shù)中不使用同一個(gè)變量表示前后意義不同的兩個(gè)數(shù)值
?????????
i
、
j
、
k
等只作為小型循環(huán)的循環(huán)索引變量
?????????
避免用
Flag
來命名狀態(tài)變量
?????????
用
Is
來命名邏輯變量,如:
blnFileIsFound
。通過這種
給布爾變量肯定形式的命名方式,使得其它開發(fā)人員能夠更為清楚的理解布爾變量所代表的意義
?????????
如果需要的話,在變量最后附加計(jì)算限定詞,如:
curSalesSum
?????????
命名不相包含,
curSales
和
curSalesSum
?????????
Static?Final?
變量的名字應(yīng)該都大寫,并且指出完整含義
?????????
如果需要對(duì)變量名進(jìn)行縮寫時(shí),一定要注意整個(gè)代碼中縮寫規(guī)則的一致性。例如,如果在代碼的某些區(qū)域中使用
int
Cnt
,而在另一些區(qū)域中又使用
int
Count
,就會(huì)給代碼增加不必要的復(fù)雜性。
建議
變量名中盡量不要出現(xiàn)縮寫
?????????
通過在結(jié)尾處放置一個(gè)量詞
,
就可創(chuàng)建更加統(tǒng)一的變量
,
它們更容易理解
,
也更容易搜索。例如
,
請(qǐng)使用
strCustomerFirst
和
strCustomerLast
,
而不要使用
strFirstCustomer
和
strLastCustomer
。常用的量詞后綴有:
First(一組變量中的第一個(gè))、Last(一組變量中的最后一個(gè))、Next(一組變量中的下一個(gè)變量)、Prev(一組變量中的上一個(gè))、Cur(一組變量中的當(dāng)前變量)
?????????
為每個(gè)變量選擇最佳的數(shù)據(jù)類型,這樣即能減少對(duì)內(nèi)存的需求量,加快代碼的執(zhí)行速度,又會(huì)降低出錯(cuò)的可能性。用于變量的數(shù)據(jù)類型可能會(huì)影響該變量進(jìn)行計(jì)算所產(chǎn)生的結(jié)果。在這種情況下,編譯器不會(huì)產(chǎn)生運(yùn)行期錯(cuò)誤,它只是迫使該值符合數(shù)據(jù)類型的要求。這類問題極難查找
?????????
盡量縮小變量的作用域。如果變量的作用域大于它應(yīng)有的范圍,變量可繼續(xù)存在,并且在不再需要該變量后的很長時(shí)間內(nèi)仍然占用資源。它們的主要問題是,任何類中的任何方法都能對(duì)它們進(jìn)行修改,并且很難跟蹤究竟是何處進(jìn)行修改的。占用資源是作用域涉及的一個(gè)重要問題。對(duì)變量來說,盡量縮小作用域?qū)?huì)對(duì)應(yīng)用程序的可靠性產(chǎn)生巨大的影響