.net命名規范的不同之處
2024-07-10 13:11:59
供稿:網友
,歡迎訪問網頁設計愛好者web開發。 在你的代碼中使用注釋語句和下邊就要講的統一命名法則是一個很好的習慣,它們會使你的代碼更加通用。我(作者)已經在微軟工作了近五年的時間了。我不知道你是否跟我一樣,在集成和除bug時遇到很多問題----因為開發者沒有遵守統一的命名法則和寫注釋語句。
在以前版本的visual studio中,微軟曾建議使用匈牙利命名法來寫代碼,并鼓勵開發這位寫出統一格式的代碼而使用相同的法則。例如:
變量
命名
cstring
szstring
char
cmychar
char*
pmychar
long
lmyvariable
lpcstr
lpstr
int
nmynumber
在最近發布的.net和它的編程語言中,微軟更換了他的這一法則。如果你用過delphi編程,你會看到新的法則與delphi(pascal)有些相似。
為避免代碼沖突(這樣做也會讓你的代碼更為通用),就要使用命名法則,這是一個很好的編程習慣。好啦,這里介紹一些常用的法則。
◆命名變量、方法、以及屬性
變量、方法和屬性的名稱的第一個字母應該大寫,并且名稱應該能表達出它們的用途(或者說是意義)。
變量
.net 命名
匈牙利命名
描述
cstring
employeename
szname
name of an employee.
int
attendancecounter
ncounter
a counter of type long.
long
numberofbytes
lbytes
a long type variable stores bytes.
有時我們習慣于在定義中使用下劃線 "_",例如: add_data(int a, int b). 按照新的命名法則,這不是一個好的編程習慣,雖然它并沒有錯。你應該將定義 add_data 改為 adddata。 這不是微軟的標準,你也不是必須按照這些法則。但是,在一些地方你會明白下邊這些法則的合理性。
就我個人而言,我更喜歡匈牙利命名法。當然,變量也使用同樣的法則。如果你記得匈牙利命名法的話,一個布爾型的變量定義以"b"打頭,比如:
bool bflag = true;
新的法則不推薦使用flag 和 "b":
bool isfilefound = true;
你可以瀏覽一下msdn,那里邊有更多有關新的法則的說明。
◆命名組件以及集合(assemblies)
為避免代碼沖突, 按照命名法則給你的庫(在 .net 中稱為assembly)命名是一個良好的編程習慣。假定你是mindcracker 公司的,你在開發一個用于擴充c# database 類的庫, 把它的名字命名為mindcracker.databaseassembly.adoset 要比myassembly.database.adoset好的多。
再假定你的庫有一個方法,它是從表中讀取數據,并返回一個數據集。你如果取名為 dataset return_data()的話,改為dataset returndata()好啦.
你還應該在命名中遵循一個統一的單詞順序。例如,你有倆個表,分別為employee 和 manager ,并且你還為它們分別定義了一個向表里邊插入一條記錄的方法, 那么方法名appendemployee 和 appendmanager 要比appendemployee 和 managerappend要好。
◆循環
循環或者是其它塊兒結構應該對齊左右大括號,就像下邊這樣:
for (i = 0; i < 100; i++)
{
...
}
或者
for (i = 0; i < 100; i++){
...
}
我更喜歡的二種方法,因為很容易清楚一個塊兒結構和嵌套塊兒結構。
◆匈牙利命名法(efoxxx附)
匈牙利命名法是一名匈牙利程序員發明的,而且他在微軟工作了多年。此命名法就是通過微軟的各種產品和文檔傳出來的。多數有經驗的程序員,不管他們用的是哪門兒語言,都或多或少在使用它
這種命名法的基本原則是:
變量名=屬性+類型+對象描述
即一個變量名是由三部分信息組成,這樣,程序員很容易理解變量的類型、用途,而且便于記憶。
下邊是一些推薦使用的規則例子,你可以挑選使用,也可以根據個人喜好作些修改再用之。
⑴屬性部分:
全局變量: g_
常量 : c_
類成員變量: m_
⑵類型部分:
指針: p
句柄: h
布爾型: b
浮點型: f
無符號: u
⑶描述部分:
初始化: init
臨時變量: tmp
目的對象: dst
源對象: src
窗口: wnd
下邊舉例說明:
hwnd: h表示句柄,wnd表示窗口,合起來為“窗口句柄”。
m_bflag: m表示成員變量,b表示布爾,合起來為:“某個類的成員變量,布爾型,是一個狀態標志”。