黑馬程式設計師C 學習在路上 命名規範

2021-06-18 13:29:47 字數 1874 閱讀 9350

------- 

windows phone 7手機開發

、.net培訓

、期待與您交流! -------

命名規範是乙個十分重要但有比較有爭議的話題,本文主要談一下我的體會並介紹一種較常用的c#命名規範。

匈牙利命名法

我最早接觸到的命名規範是匈牙利命名法,該方法出自微軟,基本上是一些在你的所有變數前建立乙個字首的規則。這個字首會說明那個變數的型別。其好處在於,通過它們的字首,你可以方便地知道兩個變數是否相容。這種方法非常流行,在目前的c和c++開發中還被廣泛的使用。

匈牙利命名法的不足

匈牙利命名法的最大的不足的地方就是繁瑣,隨著計算機的速度越來越快,ide已擁有足夠的能力,可以開始實時探測變數的型別。因此,當你程式設計時,ide能夠向你警告型別不相容的情況(通常普遍使用微軟word自動拼寫檢查中的紅色彎曲下劃線)。

匈牙利命名法過分強調型別,在泛型方法中就顯得格格不入。另外,很多時候我們關心的只是這個變數所代表的意義而不是它的型別。像c++0x的auto關鍵字(雖然這個關鍵字在c++98中就存在,但沒法用)和c#的var關鍵字也說明了這一點。在小函式或者lambda表示式這種比較簡單的流程的時候,過長的匈牙利變數顯得也很不合適。

其實主要的還是程式設計師懶惰心理作怪,但正是這種懶惰推動了計算機行業的不斷發展。就連微軟也逐步減少了匈牙利命名法的使用,在其當家語言c#中主要使用的是帕斯卡命名法和駱駝命名法。下面就簡單的介紹一下常用的c#命名規範。

c#程式設計命名規範

類class

pascal

方法function

pascal

介面inte***ce

pascal

總是以 i 字首開始,後接pascal命名

列舉型別enum

pascal

委託delegate

pascal

具體如下:

用camel(駱駝命名法)規則來命名區域性變數和方法的引數,用pascal(帕斯卡命名法)規則來命名方法和型別。

public

class

textbox

} string username;

public adduser(string userid,byte password);

介面的名稱加字首 i.

inte***ce

icompare

自定義的屬性以attribute結尾

public

class

authorattribute : attribute

自定義的異常以exception結尾

public

class

方法的命名。一般將其命名為動賓短語。

showdialog()

createfile()

getpath()

**的縮排。要用tab,而不要用space.

區域性變數的名稱要有意義。不要用x,y,z等等(除用於for迴圈變數中可使用i,j,k,l,m,n)。

所有的成員變數宣告在類的頂端,用乙個換行把它和方法分開。

用有意義的名字命名namespace,如:產品名、公司名。

生成和構建乙個長的字串時,一定要使用stringbuilder,而不用string.

始終使用""包含if下的語句,即使只有一條語句。

把相似的內容放在一起,比如資料成員、屬性、方法、事件等,並適當的使用#region…#endregion,

需要記住的一點是:程式設計規範的目的是幫助程式設計師寫出簡潔規範易讀的程式,但也沒必要過分被其所約束。

------- 

windows phone 7手機開發

、.net培訓

、期待與您交流! -------

黑馬程式設計師C 學習在路上 類成員

windows phone 7手機開發 net培訓 期待與您交流!類和結構具有表示其資料和行為的成員。類的成員包括在類中宣告的所有成員,以及在該類的繼承層次結構中的所有類中宣告的所有成員 建構函式和析構函式除外 基類中的私有成員被繼承,但不能從派生類訪問。下表列出類或結構中可包含的成員型別 成員說明...

黑馬程式設計師 變數命名

asp.net android ios開發 net培訓 期待與您交流!命名要求 變數名必須以字母開頭 變數名只能由字母 數字和下劃線組成,而不能包含空格 標點符號 運算子等其它符號。變數名不能與c 中的關鍵字名稱相同。變數名不能與c 中的庫函式名稱相同。int i 合法 int no.1 不合法,含...

黑馬程式設計師 學習筆記

windows phone 7手機開發 net培訓 期待與您交流!filestream sqlconnection實現了idispose介面,用完需要被釋放掉 using sqlconnection conn new sqlconnection 用完被釋放掉了 當close後還可以再進行open,物...