一、匈牙利命名法:廣泛應用於象Microsoft Windows這樣的環境中。
Windows 編程中用到的變量(還包括宏)的命名規則匈牙利命名法,這種命名技術是由一位能干的 Microsoft 程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法通過在變量名前面加上相應的小寫字母的符號標識作為前綴,標識出變量的作用域,類型等。這些符號可以多個同時使用,順序是先m_(成員變量),再指針,再簡單數據類型,再其他。例如:m_lpszStr, 表示指向一個以0字符結尾的字符串的長指針成員變量。
匈牙利命名法關鍵是:標識符的名字以一個或者多個小寫字母開頭作為前綴;前綴之后的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變量的用途。
匈牙利命名法中常用的小寫字母的前綴:
前 綴 類 型
a 數組 (Array)
b 布爾值 (Boolean)
by 字節 (Byte)
c 有符號字符 (Char)
cb 無符號字符 (Char Byte,沒有多少人用)
cr 顏色參考值 (ColorRef)
cx,cy 坐標差(長度 ShortInt)
dw Double Word
fn 函數
h Handle(句柄)
i 整型
l 長整型 (Long Int)
lp Long Pointer
m_ 類的成員
n 短整型 (Short Int)
np Near Pointer
p Pointer
s 字符串型
sz 以null做結尾的字符串型 (String with Zero End)
w Word
二、駱駝命名法:
駱駝式命令法,正如它的名稱所表示的那樣,是指混合使用大小寫字母來構成變量和函數的名字。例如,下面是分別用駱駝式命名法和下划線法命名的同一個函數:
printEmployeePaychecks();
print_employee_paychecks();
第一個函數名使用了駱駝式命名法——函數名中的每一個邏輯斷點都有一個大寫字母來標記;第二個函數名使用了下划線法----函數名中的每一個邏輯斷點都有一個下划線來標記。
駱駝式命名法近年來越來越流行了,在許多新的函數庫和Microsoft
Windows這樣的環境中,它使用得當相多。另一方面,下划線法是c出現后開始流行起來的,在許多舊的程序和UNIX這樣的環境中,它的使用非常普遍。
三、帕斯卡(pascal)命名法:
與駱駝命名法類似。只不過駱駝命名法是首字母小寫,而帕斯卡命名法是首字母大寫
如:public void
DisplayInfo();
string UserName;
二者都是采用了帕斯卡命名法.
在C#中,以帕斯卡命名法和駱駝命名法居多。
再轉一篇總結的不錯的文章: http://shy-feng.blog007.com/archives/2008/2008815173010.html
在以前版本的Visual Studio中,微軟曾建議使用匈牙利命名法來寫代碼,並鼓勵開發這位寫出統一格式的代碼而使用相同的法則。在最近發布的.NET和它的編程語言中,微軟更換了他的這一法則。如果你用過Delphi編程,你會看到新的法則與Delphi(Pascal)有些相似。
從我學習編程以來Visual Studio是6.0,之后有2003版和2005版,到現在有2008版了; .NET framwork類庫也從以前的1.1、2.0、3.0到現在的3.5,我學C++之時用的是Visual Studio 6.0,那時老師還介紹使用匈牙利命名法,不過之后到.NET平台下微軟不建議用匈牙利命名法了,這可以從微軟根據其所推出產品的示例和.NET framwork類庫參考看到,在C#中,以帕斯卡命名法和駱駝命名法居多。我個人習慣駱駝命名法,事實上在.NET framwork類庫參考中使用的就是帕斯卡命名法和駱駝命名法。
以下就是 帕斯卡命名法和駱駝命名法的具體使用。
編程規范 |
|||
類型 |
命外規則 |
說明 |
|
命名空間 namespace |
Pascal |
以.分隔,其中每一個限定詞均為Pascal命名方式 如ExcelQuicker.Work |
|
類 class |
Pascal |
每一個邏輯斷點首字母大寫 如public class MyHome |
|
接口 interface |
IPascal |
每一個邏輯斷點首字母大寫,總是以I前綴開始,后接Pascal命名 如public interface IBankAccount |
|
方法 method |
Pascal |
每一個邏輯斷點首字母大寫 如private void SetMember(string) |
|
枚舉類型enum |
Pascal |
每一個邏輯斷點首字母大寫 |
|
委托 delegate |
Pascal |
每一個邏輯斷點首字母大寫 |
|
局部變量 方法的參數 |
Camel |
首字母小寫,之后Pascal命名 如string myName |
|
具體應用的一般良好習慣 |
|||
1、 |
成員變量前加前綴 _ |
||
2、 |
接口的名稱加前綴I |
||
3、 |
自定義的屬性以Attribute結尾,如: public class AuthorAttribute :Attribute { } |
||
4、 |
自定義的異常以Exception結尾,如: public class AppException: Exception { |
||
5、 |
方法的命名。一般將其命名為動賓短語,如: ShowDialog() CreateFile() |
||
6、 |
代碼的縮進。要用Tab,而不要用space. |
||
7、 |
局部變量的名稱要有意義。不要用x,y,z等等(除用於For循環變量中可使用i,j,k,l,m,n)。 |
||
8、 |
所有的成員變量聲明在類的頂端,用一個換行把它和方法分開。 |
||
9、 |
用有意義的名字命名namespace,如:產品名、公司名。 |
||
10、 |
生成和構建一個長的字符串時,一定要使用StringBuilder,而不用string。 |
||
11、 |
始終使用”{ }”包含if下的語句,即使只有一條語句。 |
||
12、 |
把相似的內容放在一起,比如數據成員、屬性、方法、事件等,並適當的使用#region…#endregion |