1、匈牙利命名法:普遍應用於象Microsoft Windows這樣的環境中。
Windows 編程中用到的變量(還包括宏)的命名規則匈牙利命名法,這種命名技術是由一位能幹的 Microsoft 程序員查爾斯·西蒙尼(Charles Simonyi) 提出的。
匈牙利命名法經過在變量名前面加上相應的小寫字母的符號標識做爲前綴,標識出變量的做用域,類型等。這些符號能夠多個同時使用,順序是先m_(成員變量),再指針,再簡單數據類型,再其餘。例如:m_lpszStr, 表示指向一個以0字符結尾的字符串的長指針成員變量。
匈牙利命名法關鍵是:標識符的名字以一個或者多個小寫字母開頭做爲前綴;前綴以後的是首字母大寫的一個單詞或多個單詞組合,該單詞要指明變量的用途。
匈牙利命名法中經常使用的小寫字母的前綴:html
前 綴 | 類 型 |
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 |
2、駱駝命名法:
駱駝式命令法,正如它的名稱所表示的那樣,是指混合使用大小寫字母來構成變量和函數的名字。例如,下面是分別用駱駝式命名法和下劃線法命名的同一個函數:
printEmployeePaychecks();
print_employee_paychecks();
第一個函數名使用了駱駝式命名法——函數名中的每個邏輯斷點都有一個大寫字母來標記;第二個函數名使用了下劃線法----函數名中的每個邏輯斷點都有一個下劃線來標記。
駱駝式命名法近年來愈來愈流行了,在許多新的函數庫和Microsoft
Windows這樣的環境中,它使用得當相多。另外一方面,下劃線法是c出現後開始流行起來的,在許多舊的程序和UNIX這樣的環境中,它的使用很是廣泛。
3、帕斯卡(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.一、2.0、3.0到如今的3.5,我學C++之時用的是Visual Studio 6.0,那時老師還介紹使用匈牙利命名法,不過以後到.NET平臺下微軟不建議用匈牙利命名法了,這能夠從微軟根據其所推出產品的示例和.NET framwork類庫參考看到,在C#中,以帕斯卡命名法和駱駝命名法居多。我我的習慣駱駝命名法,事實上在.NET framwork類庫參考中使用的就是帕斯卡命名法和駱駝命名法。編程語言
如下就是 帕斯卡命名法和駱駝命名法的具體使用。函數
編程規範學習 |
||
類型ui |
命外規則spa |
說明指針 |
命名空間 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 |
具體應用的通常良好習慣 |
||
一、 |
成員變量前加前綴 _ |
|
二、 |
接口的名稱加前綴I |
|
三、 |
自定義的屬性以Attribute結尾,如: public class AuthorAttribute :Attribute { } |
|
四、 |
自定義的異常以Exception結尾,如: public class AppException: Exception { |
|
五、 |
方法的命名。通常將其命名爲動賓短語,如: ShowDialog() CreateFile() |
|
六、 |
代碼的縮進。要用Tab,而不要用space. |
|
七、 |
局部變量的名稱要有意義。不要用x,y,z等等(除用於For循環變量中可以使用i,j,k,l,m,n)。 |
|
八、 |
全部的成員變量聲明在類的頂端,用一個換行把它和方法分開。 |
|
九、 |
用有意義的名字命名namespace,如:產品名、公司名。 |
|
十、 |
生成和構建一個長的字符串時,必定要使用StringBuilder,而不用string。 |
|
十一、 |
始終使用」{ }」包含if下的語句,即便只有一條語句。 |
|
十二、 |
把類似的內容放在一塊兒,好比數據成員、屬性、方法、事件等,並適當的使用#region…#endregion |