命名規範 3 識別符號的命名

2022-01-13 17:40:35 字數 2796 閱讀 9772

程式集是乙個部署單元,同時還代表託管程式的身份,雖然程式集可以分布在乙個或多個檔案中,但一般乙個程式集僅與乙個dll相對應。誇檔案的程式集很少使用,visual studio也沒有支援他的內建。

命名空間與dll和程式集是不同的概念,命名空間對開發人員來說是一組邏輯實體,而dll和程式集則是用於打包和部署的乙個單元。dll可以包含多個命名空間,由於命名空間的組織方式與dll不同,所以可以單獨設計,而不需要講兩者強制關聯。

要為程式集和dll選擇具有代表性的名字,如system.data,這樣很容易就知道它的大致功能。

考慮用..dll的模式給dll命名。其中可以包含多個圓點分隔的子句,如microsoft.visualbasic.dll   microsoft.visualbasic.vsa.dll。

命名空間模板:.(|)[.][.]

要用公司的名稱作為命名空間的字首。

要用穩定的、與版本無關的產品名稱作為命名空間的第二層。

不要根據公司的組織架構來決定命名空間的層次結構,因為公司內部組織經過一段時間之後可能會發生改變。要根據相關技術來組織和劃分命名空間的層次結構。

考慮適當的時候在命名空間中使用複數。如:system.collections

不要用相同的名字給命名空間和型別命名。

命名空間與類名的衝突

不要引入太一般化的型別名,如node、element、log及message,這樣的名字很可能會在常見的場景中引起型別名的衝突,應該給一般化的型別名加上限定符(xmlnode、formelement、...)。

對於不同的命名空間,有具體的規範來避免型別名衝突。命名空間的型別如下:

基礎設施命名空間(infrastructure namespace)

核心命名空間(core namespace)

技術命名空間組(technology namespace group)

不要在單個應用程式模型中為命名空間中的多個型別起相同的名字。

不要給型別起會與核心命名空間中的任何型別產生衝突的名字。如stream很容易和system.io.stream衝突。

不要給型別會與同一技術中的其他型別產生衝突的名字。

不要在技術命名空間和應用程式模型命名空間的型別之間引入型別名衝突(除非兩者不打算一起使用)。

類、結構和介面的命名

要用名詞或名詞短語來給類和結構命名。如果無法找到乙個名詞或名詞短語,那就應該重新考慮該型別的總體設計;另一種選擇型別名字的方法是通過場景的角度。

要用形容詞短語來命名介面,在少數情況下也可以用名詞或名詞短語。

不要給類名加上符號「c」作為字首。

要讓介面的名字已字母「i」開頭,這樣可以顯示出該型別是乙個介面。

泛型型別引數的命名

要用描述性的名字來命名泛型型別引數,除非乙個字母就能說明含義就無需使用描述性的名字,如list、convert。

考慮用單個字母「t」來命名引數型別,如果型別只有乙個型別引數且型別引數只有乙個字母。

要給描述性的型別引數名加上「t」字首。

考慮在型別引數名中顯示出施加於該型別引數上的約束。

常用的型別命名

如果要從.net框架中所包含的型別派生新的型別,或者實現.net框架中的型別,那麼應該遵循下表中的規範。

列舉型別的命名

要用單數名詞來命名列舉型別,除非它表示的是位域(bit field),即位域要用複數名詞來命名。  

1

public

enum

consolecolor 78

[flags]

9public

enum

consolemodifiers

方法的命名

要用動詞或動詞短語來命名方法。

屬性的命名

要用名詞、名詞短語或形容詞來命名屬性

要用描述集合中專案短語的複數形式來命名集合屬性,而不要使用短語的單數形式加「list」或「collection」字尾。

要用肯定性的短語來命名布林屬性,可以選擇「is」、「can」、「has」等字首。

考慮用屬性的型別名來命名屬性

1

public

enum color23

public

class

control

5 }

事件的命名

要用動詞或動詞短語來命名事件。

要用現在時和過去時來賦予事件名以之前和之後的概念。如colse事件的colosing(關閉前)、colsed(關閉後)。

要在命名事件處理函式(用作事件的委託)時加上「eventhandler」字尾。

要在事件處理函式中用sender和e作為兩個引數的名字。

欄位的命名

要用名詞、名詞短語或形容詞來命名字段。

不要給字段(靜態共有欄位和靜態受保護字段)名加字首,但是大家都喜歡給私有字段加上「_」字首。

對於靜態共有欄位和靜態受保護字段命名時要用算駝峰風(pascalcasing)格。

要使用描述性的引數名。

考慮根據引數的意思而不是引數的型別來命名引數。

過載操作符的引數命名

要使用left和right來命名過載二元操作符的引數。

要用value來命名過載一元操作符的引數。

考慮使用有意義的名字來命名過載操作符的引數。

不要在命名過載操作符的引數時,使用縮寫或數字編號。

本地資源就好比是屬性,所以命名方式與屬性的命名規範相似。

要在命名資源鍵(resource key)時使用pascalcasing大小寫風格。

要使識別符號的名字具有描述性,而不是注重簡潔性。

資源名一般是有字母、數字、下劃線組成。(有時候我也會用中文,但不知道會不會有字元編碼的問題)

識別符號的命名

標示符型別 命名規則 例子 packages 每乙個包的名稱總是小寫 com.topgroup.eng com.topgroup.report.v2 com.topgroup.jdm classes 類名的每個單詞的首字母為大寫,其它為小寫。類名應該簡單清晰。盡可能使用名詞 class raster...

C 識別符號及變數命名規範

c 識別符號是用來標識變數 函式 類 模組,或任何其他使用者自定義專案的名稱。c 的識別符號 identifier 由字母 數字和下畫線組成,其中必須以字母或下畫線開頭。識別符號的長度沒有限制,但是對大小寫字母敏感 定義4個不同的int變數,說明了c 是區分大小寫的程式語言 int somename...

識別符號的命名約定

識別符號的功能是用於標記 資料實體 命名時,應當尊循尊循以下的約定 方便自己,也方便夥伴理解識別符號所標記的內容 目標 掌握識別符號的命名約定 約定內容 見名知義 什麼叫 見名知義 命名演練 多單詞的識別符號出現的情景 需要使用 使用者名稱 這個意思去標記一些資料 username 兩個詞連在一起不...