新軟件編程規(guī)范_第1頁
新軟件編程規(guī)范_第2頁
新軟件編程規(guī)范_第3頁
新軟件編程規(guī)范_第4頁
新軟件編程規(guī)范_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、軟件編程規(guī)范Version 1.0變更歷史版本日期備注1.02007-2-3首次訂立目錄1概述21.1制定目的21.2制定原則31.3術(shù)語定義31.3.1Pascal 大小寫31.3.2Camel 大小寫31.4文件命名組織31.4.1文件命名31.4.2文件注釋32代碼外觀42.1排版原則與建議42.2列寬42.3換行42.4縮進(jìn)42.5空行42.6空格42.7括號 - ()52.8花括號 - 53程序注釋53.1注釋概述53.2文檔型注釋63.3類c注釋63.4塊注釋63.5單行注釋73.6注釋標(biāo)簽74申明94.1每行聲明數(shù)94.2初始化94.3位置94.4類和接口的聲明104.5字段的聲

2、明105命名規(guī)范105.1命名概述105.2邏輯點注釋115.3大小寫規(guī)則115.4縮寫125.5命名空間125.6類125.7變量命名135.8接口135.9屬性 (Attribute)145.10枚舉 (Enum)145.11參數(shù)145.12方法145.13屬性 (property)145.14事件(Event, Delegate)165.15常量 (const)175.16字段175.17靜態(tài)字段185.18集合185.19措詞186語句196.1每行一個語句196.2復(fù)合語句196.3return 語句196.4if、 if-else、if else-if 語句206.5for、for

3、each 語句206.6while 語句216.7do - while 語句216.8switch - case 語句216.9try - catch 語句216.10using 塊語句226.11goto 語句227控件命名規(guī)則227.1命名方法227.2主要控件名簡寫對照表228其他228.1代碼可讀性建議228.2表達(dá)式228.3類型轉(zhuǎn)換229附錄239.1匈牙利命名法239.1.1數(shù)據(jù)類型前綴239.1.2控件前綴239.1.3ADO.NET249.2常用縮寫259.2.1英語單詞縮寫259.2.2業(yè)務(wù)對象縮寫251 概述1.1 制定目的代碼的規(guī)范是為了使系統(tǒng)具有整體一致的編碼風(fēng)格,以

4、使后期維護(hù)人員能更快的讀懂代碼并進(jìn)行維護(hù)。如非平臺或語言特性原因,本規(guī)范使用于ASP.net , C# , Javascript 語言.1.2 制定原則 方便代碼的交流和維護(hù)。 影響編碼的效率,不與大眾習(xí)慣沖突,盡量和業(yè)內(nèi)的標(biāo)準(zhǔn)統(tǒng)一以降低適應(yīng)成本. 使代碼更美觀、閱讀更方便。 使代碼的邏輯更清晰、更易于理解。 符合微軟的建議規(guī)范, 可以使用FXCop工具自動檢查代碼的規(guī)范性、安全性和效率1.3 術(shù)語定義1.3.1 Pascal 大小寫 將標(biāo)識符的首字母和后面連接的每個單詞的首字母都大寫??梢詫θ址蚋嘧址臉?biāo)識符使用Pascal 大小寫。例如: BackColor, ProductType

5、1.3.2 Camel 大小寫標(biāo)識符的首字母小寫,而每個后面連接的單詞的首字母都大寫。例如: backColor, productType1.4 文件命名組織1.4.1 文件命名1. 統(tǒng)一不使用前綴 直接使用文件意義名,比如WarehouseMaintain, 但aspx文件和cs文件名必須相同,同一功能的從屬頁面的名字=主頁面名稱相同的+1,2等流水號,比如庫房維護(hù)頁面WarehouseMaintain.aspx有從屬頁面,則名稱取為WarehouseMaintain1.aspx. 2. 文件名遵從Pascal命名法,無特殊情況,擴(kuò)展名小寫。3. 使用統(tǒng)一而又通用的文件擴(kuò)展名: C# 類 .

6、cs1.4.2 文件注釋在代碼文件的頭部進(jìn)行注釋,這樣做的好處在于,我們能對代碼文件做變更跟蹤。在代碼頭部分標(biāo)注出創(chuàng)始人、創(chuàng)始時間、修改人、修改時間、代碼的功能,這在團(tuán)隊開發(fā)中必不可少,它們可以使后來維護(hù)/修改的同伴在遇到問題時,在第一時間知道他應(yīng)該向誰去尋求幫助,并且知道這個文件經(jīng)歷了多少次迭代、經(jīng)歷了多少個程序員的開發(fā)和修改。 在每個文件頭必須包含以下注釋說明 /*- / Copyright (C) 2010 人事薪資管理系統(tǒng) / 版權(quán)所有。 / / 文件名:員工排班 / 文件功能描述:更新員工上班日期、時間 / / / 創(chuàng)建標(biāo)識:LinYu / / 修改標(biāo)識:LinYu (注:如該頁有修

7、改,則填寫) / 修改描述:添加部門選擇功能 /-*/文件功能描述只需簡述,具體詳情在類的注釋中描述。創(chuàng)建標(biāo)識和修改標(biāo)識由創(chuàng)建或修改人員的拼音或英文名加日期組成。如: Tom Lee 一天內(nèi)有多個修改的只需做一個在注釋說明中做一個修改標(biāo)識就夠了。在所有的代碼修改處加上修改標(biāo)識的注釋。 2 代碼外觀2.1 排版原則與建議1、 每行語句至少占一行,如果語句過長(超過一屏),則該語句斷為兩行顯示2、 把相似的內(nèi)容放在一起,比如數(shù)據(jù)成員、屬性、方法、事件等,并適當(dāng)?shù)氖褂?region#endregion2.2 列寬 代碼列寬控制在110字符左右。(以1024*768分辨率,展開Solution Exp

8、lorer 為基準(zhǔn))2.3 換行 當(dāng)表達(dá)式超出或即將超出規(guī)定的列寬,遵循以下規(guī)則進(jìn)行換行 1、在逗號后換行。 2、在操作符前換行。 3、規(guī)則1優(yōu)先于規(guī)則2。 當(dāng)以上規(guī)則會導(dǎo)致代碼混亂的時候自己采取更靈活的換行規(guī)則。 2.4 縮進(jìn) 縮進(jìn)應(yīng)該是每行一個Tab。 2.5 空行空行是為了將邏輯上相關(guān)聯(lián)的代碼分塊,以便提高代碼的可閱讀性, 直觀。 在以下情況下使用一個空行 1、方法與方法、屬性與屬性之間。 2、方法中變量聲明與語句之間。 3、方法與方法之間。 4、方法中不同的邏輯塊之間。 5、方法中的返回語句與其他的語句之間。 6、屬性與方法、屬性與字段、方法與字段之間。 7、注釋與它注釋的語句間不空行

9、,但與其他的語句間空一行。2.6 空格在以下情況中要使用到空格 1、 關(guān)鍵字和左括符 “(” 應(yīng)該用空格隔開。如 while (true) 注意在方法名和左括符 “(” 之間不要使用空格,這樣有助于辨認(rèn)代碼中的方法調(diào)用與關(guān)鍵字。2、多個參數(shù)用逗號隔開,每個逗號后都應(yīng)加一個空格。3、除了 . 之外,所有的二元操作符都應(yīng)用空格與它們的操作數(shù)隔開。一元操作符、+及-與操作數(shù)間不需要空格。如 a += c + d; a = (a + b) / (c * d); while (d+ = s+) n+; PrintSize(“size is “ + size + “n”);4、 語句中的表達(dá)式之間用空格隔

10、開。如 for (expr1; expr2; expr3)2.7 括號 - () 注意運算符的優(yōu)先級,我們應(yīng)該盡量使用括號明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級,給我們以及維護(hù)人帶來困擾 1、 左括號“(” 不要緊靠關(guān)鍵字,中間用一個空格隔開。 2、 左括號“(” 與方法名之間不要添加任何空格。 3、 沒有必要的話不要在返回語句中使用()。如 if (condition) Array.Remove(1) return 1 2.8 花括號 - 1、 左花括號 “” 放于關(guān)鍵字或方法名的下一行并與之對齊。如 if (condition) public int Add(int x, int y)

11、2、 左花括號 “” 要與相應(yīng)的右花括號 “”對齊。 3、 通常情況下左花括號 “”單獨成行,不與任何語句并列一行。 4、 if、while、do語句后一定要使用,即使號中為空或只有一條語句。如 if (somevalue = 1) somevalue = 2; 5、 右花括號 “” 后建議加一個注釋以便于方便的找到與之相應(yīng)的 。如 while (1) if (valid) / if valid else / not valid / end 1 3 程序注釋3.1 注釋概述1、修改代碼時,總是使代碼周圍的注釋保持最新。2、在每個例程的開始,提供標(biāo)準(zhǔn)的注釋樣本以指示例程的用途、假設(shè)和限制很有幫助

12、。注釋樣本應(yīng)該是解釋它為什么存在和可以做什么的簡短介紹.3、避免在代碼行的末尾添加注釋;行尾注釋使代碼更難閱讀。不過在批注變量聲明時,行尾注釋是合適的;在這種情況下,將所有行尾注釋在公共制表位處對齊。 4 、避免雜亂的注釋,如一整行星號。而是應(yīng)該使用空白將注釋同代碼分開。 5 、避免在塊注釋的周圍加上印刷框。這樣看起來可能很漂亮,但是難于維護(hù)。6 、在部署發(fā)布之前,移除所有臨時或無關(guān)的注釋,以避免在日后的維護(hù)工作中產(chǎn)生混亂。7 、如果需要用注釋來解釋復(fù)雜的代碼節(jié),請檢查此代碼以確定是否應(yīng)該重寫它。盡一切可能不注釋難以理解的代碼,而應(yīng)該重寫它。盡管一般不應(yīng)該為了使代碼更簡單以便于人們使用而犧牲性

13、能,但必須保持性能和可維護(hù)性之間的平衡。8 、在編寫注釋時使用完整的句子。注釋應(yīng)該闡明代碼,而不應(yīng)該增加多義性。 9 、在編寫代碼時就注釋,因為以后很可能沒有時間這樣做。另外,如果有機(jī)會復(fù)查已編寫的代碼,在今天看來很明顯的東西六周以后或許就不明顯了。10 、避免多余的或不適當(dāng)?shù)淖⑨?,如幽默的不主要的備注?1、 使用注釋來解釋代碼的意圖。它們不應(yīng)作為代碼的聯(lián)機(jī)翻譯。 12、 注釋代碼中不十分明顯的任何內(nèi)容。13 、為了防止問題反復(fù)出現(xiàn),對錯誤修復(fù)和解決方法代碼總是使用注釋,尤其是在團(tuán)隊環(huán)境中。/ David X Liu modify date: 2007-2-5 begin/ 原來代碼修改后的

14、代碼/ David X Liu modify date: 2007-2-5 end14 、對由循環(huán)和邏輯分支組成的代碼使用注釋。這些是幫助源代碼讀者的主要方面。 15 、在整個應(yīng)用程序中,使用具有一致的標(biāo)點和結(jié)構(gòu)的統(tǒng)一樣式來構(gòu)造注釋。 16 、用空白將注釋同注釋分隔符分開。在沒有顏色提示的情況下查看注釋時,這樣做會使注釋很明顯且容易被找到。17 、在所有的代碼修改處加上修改標(biāo)識的注釋。18 、為了使層次清晰,在閉合的右花括號后注釋該閉合所對應(yīng)的起點。namespace Futaba.HRM.FrameWork / namespace Futaba.HRM.FrameWork3.2 文檔型注釋

15、該類注釋采用.Net已定義好的Xml標(biāo)簽來標(biāo)記,在聲明接口、類、方法、屬性、字段都應(yīng)該使用該類注釋,以便代碼完成后直接生成代碼文檔,讓別人更好的了解代碼的實現(xiàn)和接口。如/MyMethod is a method in the MyClass class./ Heres how you could make a second paragraph in a description./ /for information about output statements./ public static void MyMethod(int Int1) 3.3 類c注釋 該類注釋用于 1 不再使用的代碼。

16、2 臨時測試屏蔽某些代碼。 用法/*修改標(biāo)識修改原因. . . (the source code )*/3.4 塊注釋使用如下模塊:#region 注釋文字代碼行1代碼行2.代碼行n#endregion3.5 單行注釋 該類注釋用于1 方法內(nèi)的代碼注釋。如變量的聲明、代碼或代碼段的解釋。注釋示例: / / 注釋語句 / private int number; 或 / 注釋語句 private int number; 2 方法內(nèi)變量的聲明或花括號后的注釋, 注釋示例: if ( 1 = 1) / always true statement; / always true3.6 注釋標(biāo)簽 標(biāo)簽用法作

17、用ctext text 希望將其指示為代碼的文本。為您提供了一種將說明中的文本標(biāo)記為代碼的方法。使用 將多行指示為代碼contentcontent段落文本。用于諸如 或 等標(biāo)記內(nèi),使您得以將結(jié)構(gòu)添加到文本中。descriptionname 為方法參數(shù)名。將此名稱用單引號括起來 ( )。應(yīng)當(dāng)用于方法聲明的注釋中,以描述方法的一個參數(shù)。 name 要引用的參數(shù)名。將此名稱用雙引號括起來 ( )。 標(biāo)記為您提供了一種指示詞為參數(shù)的方法??梢蕴幚?XML 文件,從而用某種獨特的方法格式化該參數(shù)。cref = member 對可以通過當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后

18、,將 member 傳遞給輸出 XML 中的元素名。必須將 member 括在雙引號 ( ) 中。使您得以從文本內(nèi)指定鏈接。使用 指示希望在“請參閱”一節(jié)中出現(xiàn)的文本。cref = member 對可以通過當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將 member 傳遞給輸出 XML 中的元素名。必須將 member 括在雙引號 ( ) 中使您得以指定希望在“請參閱”一節(jié)中出現(xiàn)的文本。使用 從文本descriptiondescription 代碼示例的說明。使用 標(biāo)記可以指定使用方法或其他庫成員的示例。一般情況下,這將涉及到 標(biāo)記的使用。contentconten

19、t 為希望將其標(biāo)記為代碼的文本。 記為您提供了一種將多行指示為代碼的方法。使用 指示應(yīng)將說明中的文本標(biāo)記為代碼description此處description 為對象的摘要。應(yīng)當(dāng)用于描述類型成員。使用 以提供有關(guān)類型本身的信息。descriptioncref = member 對可從當(dāng)前編譯環(huán)境中獲取的異常的引用。編譯器檢查到給定異常存在后,將 member 轉(zhuǎn)換為輸出 XML 中的規(guī)范化元素名。必須將 member 括在雙引號 ( ) 中。description 說明。 標(biāo)記使您可以指定類能夠引發(fā)的異常。filename 包含文檔的文件名。該文件名可用路徑加以限定。將 filename 括在

20、單引號中 ( )。 Tagpath:filename 中指向標(biāo)記名的標(biāo)記路徑。將此路徑括在單引號中 ( )。 name 注釋前邊的標(biāo)記中的名稱說明符;名稱具有一個 id。 id 位于注釋之前的標(biāo)記的 id。將此 id 括在雙引號中 ( )。 標(biāo)記使您得以引用描述源代碼中類型和成員的另一文件中的注釋。這是除了將文檔注釋直接置于源代碼文件中之外的另一種可選方法。 標(biāo)記使用 XML XPath 語法。有關(guān)自定義 使用的方法,請參閱 XPath 文檔。 term description term description term 定義的項,該項將在 text 中定義。 description 目符號列

21、表或編號列表中的項或者 term 的定義。 塊用于定義表或定義列表中的標(biāo)題行。定義表時,只需為標(biāo)題中的項提供一個項。列表中的每一項用 塊指定。創(chuàng)建定義列表時,既需要指定 term 也需要指定 text。但是,對于表、項目符號列表或編號列表,只需為 text 提供一個項。列表或表所擁有的 塊數(shù)可以根據(jù)需要而定。descriptioncref = member 對可以通過當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將 member 轉(zhuǎn)換為輸出 XML 中的規(guī)范化元素名。必須將 member 括在雙引號 ( ) 中。 description 成員的訪問的說明。 標(biāo)記使您得

22、以將成員的訪問記入文檔。System.Security.PermissionSet 使您得以指定對成員的訪問。descriptiondescription 成員的說明。 標(biāo)記是可以指定有關(guān)類或其他類型的概述信息的位置。 是可以描述該類型的成員的位置。 descriptiondescription 返回值的說明。 標(biāo)記應(yīng)當(dāng)用于方法聲明的注釋,以描述返回值。 property-descriptionproperty-description 屬性的說明。 標(biāo)記使您得以描述屬性。請注意,當(dāng)在 Visual Studio .NET 開發(fā)環(huán)境中通過代碼向?qū)砑訉傩詴r,它將會為新屬性添加 標(biāo)記。然后,應(yīng)該手

23、動添加 標(biāo)記以描述該屬性所表示的值。4 申明4.1 每行聲明數(shù)一行只建議作一個聲明,并按字母順序排列。如 int level; /推薦 int size; /推薦 int x, y; /不推薦4.2 初始化 變量必須初始化值,在變量聲明時就對其做初始化, 比如: int intSeq=0; 4.3 位置 變量建議置于塊的開始處,不要總是在第一次使用它們的地方做聲明。如 void MyMethod() int int1 = 0; / beginning of method block if (condition) int int2 = 0; / beginning of if block . 不

24、過也有一個例外 for (int i = 0; i maxLoops; i+) . 應(yīng)避免不同層次間的變量重名,如 int count; .void MyMethod() if (condition) int count = 0; / 避免 . .4.4 類和接口的聲明 1 在方法名與其后的左括號間沒有任何空格。 2 左花括號 “” 出現(xiàn)在聲明的下行并與之對齊,單獨成行。 3 方法間用一個空行隔開。 4.5 字段的聲明不要使用是 public 或 protected 的實例字段。如果避免將字段直接公開給開發(fā)人員,可以更輕松地對類進(jìn)行版本控制,原因是在維護(hù)二進(jìn)制兼容性時字段不能被更改為屬性??紤]

25、為字段提供 get 和set 屬性訪問器,而不是使它們成為公共的。 get 和 set 屬性訪問器中可執(zhí)行代碼的存在使得可以進(jìn)行后續(xù)改進(jìn),如在使用屬性或者得到屬性更改通知時根據(jù)需要創(chuàng)建對象。下面的代碼示例闡釋帶有g(shù)et 和 set 屬性訪問器的私有實例字段的正確使用。 示例: public class Control: Component private int _handle; public int Handle get return _handle; 5 命名規(guī)范5.1 命名概述名稱應(yīng)該說明“什么”而不是“如何”。通過避免使用公開基礎(chǔ)實現(xiàn)(它們會發(fā)生改變)的名稱,可以保留簡化復(fù)雜性的抽象層

26、。例如,可以使用 GetNextStudent(),而不是 GetNextArrayElement()。 命名原則是:選擇正確名稱時的困難可能表明需要進(jìn)一步分析或定義項的目的。使名稱足夠長以便有一定的意義,并且足夠短以避免冗長。唯一名稱在編程上僅用于將各項區(qū)分開。表現(xiàn)力強(qiáng)的名稱是為了幫助人們閱讀;因此,提供人們可以理解的名稱是有意義的。不過,請確保選擇的名稱符合適用語言的規(guī)則和標(biāo)準(zhǔn)。以下幾點是推薦的命名方法。1、避免容易被主觀解釋的難懂的名稱,如方面名 AnalyzeThis(),或者屬性名 xxK8。這樣的名稱會導(dǎo)致多義性。2、在類屬性的名稱中包含類名是多余的,如 Book.BookTitl

27、e。而是應(yīng)該使用 Book.Title。3、只要合適,在變量名的末尾或開頭加計算限定符(Avg、Sum、Min、Max、Index)。4、在變量名中使用互補(bǔ)對,如 min/max、begin/end 和 open/close。 5、布爾變量名應(yīng)該包含 Is,這意味著 Yes/No 或 True/False 值,如 fileIsFound。6、在命名狀態(tài)變量時,避免使用諸如 Flag 的術(shù)語。狀態(tài)變量不同于布爾變量的地方是它可以具有兩個以上的可能值。不是使用 documentFlag,而是使用更具描述性的名稱,如 documentFormatType。 (此項只供參考)7、即使對于可能僅出現(xiàn)在幾

28、個代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對于短循環(huán)索引使用單字母變量名,如 i 或 j。 可能的情況下,盡量不要使用原義數(shù)字或原義字符串,如For i = 1 To 7。而是使用命名常數(shù),如 For i = 1 To NUM_DAYS_IN_WEEK 以便于維護(hù)和理解。請使用/三斜線注釋,這種注釋是基于XML的,不僅能導(dǎo)出XML制作幫助文檔,而且在各個函數(shù)、屬性、類等的使用中,編輯環(huán)境會自動帶出注釋,方便你的開發(fā)。以protected,protected Internal,public聲明的定義注釋都建議以這樣命名方法。例如:/ / 用于從ERP系統(tǒng)中撈出產(chǎn)品信息的類/ clas

29、s ProductTypeCollector 5.2 邏輯點注釋在我們認(rèn)為邏輯性較強(qiáng)的地方加入注釋,說明這段程序的邏輯是怎樣的,以方便我們自己后來的理解以及其他人的理解,并且這樣還可以在一定程度上排除BUG。在注釋中寫明我們的邏輯思想,對照程序,判斷程序是否符合我們的初衷,如果不是,則我們應(yīng)該仔細(xì)思考修改的是注釋還是程序了5.3 大小寫規(guī)則大寫標(biāo)識符中的所有字母都大寫。僅對于由兩個或者更少字母組成的標(biāo)識符使用該約定。例如:System.IOSystem.Web.UI下表匯總了大寫規(guī)則,并提供了不同類型的標(biāo)識符的示例。標(biāo)識符大小寫示例類PascalAppDomain, Application枚舉

30、類型PascalErrorLevel, 是以Pascal命名,切勿包含Enum,否則FXCop會拋出Issue枚舉值PascalFatalError, 是以Pascal命名,切勿包含Enum,否則FXCop會拋出Issue事件PascalValueChange異常類PascalWebException 注意 總是以 Exception 后綴結(jié)尾。只讀的靜態(tài)字段PascalRedValue接口PascalIDisposable 注意 總是以 I 前綴開始。方法PascalToString命名空間PascalSystem.Drawing屬性PascalBackColor公共實例字段PascalRe

31、dValue 注意 很少使用。屬性優(yōu)于使用公共實例字段。受保護(hù)的實例字段Camel redValue 注意 很少使用。屬性優(yōu)于使用受保護(hù)的實例字段。私有的實例字段CamelredValue, 也可以加入類型標(biāo)識符,比如對于System.String類型,聲明變量是以str開頭,string strSQL = string.Empty;參數(shù) parameterCameltypeName, 首字母小寫方法內(nèi)的變量CamelbackColor5.4 縮寫 為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)縮寫的使用的下列規(guī)則: 1 不要將縮寫或縮略形式用作標(biāo)識符名稱的組成部分。例如,使用 GetWind

32、ow,而不要使用 GetWin。 2 不要使用計算機(jī)領(lǐng)域中未被普遍接受的縮寫。 3 在適當(dāng)?shù)臅r候,使用眾所周知的縮寫替換冗長的詞組名稱。例如,用 UI 作為 User Interface 縮 寫,用 OLAP 作為 On-line Analytical Processing 的縮寫。 4在使用縮寫時,對于超過兩個字符長度的縮寫請使用 Pascal 大小寫或 Camel 大小寫。例如,使用 HtmlButton 或 HTMLButton。但是,應(yīng)當(dāng)大寫僅有兩個字符的縮寫,如,System.IO,而不是 System.Io。 5 不要在標(biāo)識符或參數(shù)名稱中使用縮寫。如果必須使用縮寫,對于由多于兩個字

33、符所組成的縮寫請 使用Camel 大小寫,雖然這和單詞的標(biāo)準(zhǔn)縮寫相沖突。5.5 命名空間 1、命名命名空間時的一般性規(guī)則是使用公司名稱,后跟技術(shù)名稱和可選的功能與設(shè)計,如下所示。 CompanyName.SiteName.TechnologyName.Feature.Design 比如Futaba.HRM.Entity. 2、命名空間使用Pascal大小寫,用逗號分隔開。 3、TechnologyName 指的是該項目的英文縮寫,或軟件名。 4、命名空間和類不能使用同樣的名字。例如,有一個類被命名為Debug后,就不要再使用Debug作為一個名稱空間名。 5.6 類1、使用 Pascal 大小

34、寫。2、類的名稱應(yīng)該能夠標(biāo)識事物的特性,使用名詞和名詞短語命名,如Family, UserGroup。3、使用全稱避免縮寫,除非縮寫已是一種公認(rèn)的約定,如URL、HTML 4 、不要使用類型前綴,如在類名稱上對類使用 C 前綴。例如,使用類名稱 FileStream,而不是 CFileStream。 5 、不要使用下劃線字符 (_)。 6 、有時候需要提供以字母 I 開始的類名稱,雖然該類不是接口。只要 I 是作為類名稱組成部分的整個單詞的第一個字母,這便是適當(dāng)?shù)?。例如,類名稱 IdentityStore 是適當(dāng)?shù)?。在適當(dāng)?shù)牡胤?,使用?fù)合單詞命名派生的類。派生類名稱的第二個部分應(yīng)當(dāng)是基類的名稱

35、。例如,ApplicationException 對于從名為 Exception 的類派生的類是適當(dāng)?shù)拿Q,原因ApplicationException 是一種Exception。請在應(yīng)用該規(guī)則時進(jìn)行合理的判斷。例如,Button 對于從 Control 派生的類是適當(dāng)?shù)拿Q。盡管按鈕是一種控件,但是將 Control 作為類名稱的一部分將使名稱不必要地加長。 public class FileStream public class Button public class String自定義異常類以Exception結(jié)尾,并且在類名中能清楚的描述出該異常的原因。比如NotFoundFileEx

36、ception,描述出了某個實體(文件、內(nèi)存區(qū)域等)無法被找到5.7 變量命名在primitive的局部變量命名時,使用Camel命名規(guī)則,比如:int type = 0;double count = 0;對于string類型定義,通常使用str前綴+Pascal命名的方式,比如string strSql = ; /這是一種典型的命名SQL語句字符串的方式。不推薦。而對于此外的類型對象定義,通常的做法是使用obj前綴+Pascal命名的方式,來告知我們這個變量是一個對象?;蛘咭部梢灾苯邮褂妙惷腃amel命名規(guī)則,推薦使用后者。比如: Application objApplication =

37、new Application(); Application application = new Application(); 推薦循環(huán)算子變量命名可以使用i,j,k等簡單命名方式.5.8 接口給接口名稱加上字母 I 前綴,以指示該類型為接口。用名詞或名詞短語,或者描述行為的形容詞命名接口。例如,接口名稱 IComponent 使用描述性名詞。接口名稱 ICustomAttributeProvider 使用名詞短語。名稱 IPersistable 使用形容詞。不要用下滑下劃線。 每個英文單詞或縮寫單詞的首字母必須大寫 以下規(guī)則概述接口的命名指南: 1、用名詞或名詞短語,或者描述行為的形容詞命名

38、接口。例如,接口名稱 IComponent 使用描述性名詞。接口名稱 ICustomAttributeProvider 使用名詞短語。名稱 IPersistable 使用形容詞。 2、使用 Pascal 大小寫。 3、少用縮寫。 4、給接口名稱加上字母 I 前綴,以指示該類型為接口。在定義類/接口對(其中類是接口的標(biāo)準(zhǔn)實現(xiàn))時使用相似的名稱。兩個名稱的區(qū)別應(yīng)該只是接口名稱上有字母 I 前綴。 5、不要使用下劃線字符 (_)。 6、當(dāng)類是接口的標(biāo)準(zhǔn)執(zhí)行時,定義這一對類/接口組合就要使用相似的名稱。兩個名稱的不同之處只是接口名前有一個I前綴。 以下是正確命名的接口的示例。 public inter

39、face IServiceProvider public interface IFormatable 以下代碼示例闡釋如何定義 IComponent 接口及其標(biāo)準(zhǔn)實現(xiàn) Component 類。 public interface IComponent / Implementation code goes here. public class Component: IComponent / Implementation code goes here. 5.9 屬性 (Attribute)應(yīng)該總是將后綴 Attribute 添加到自定義屬性類。以下是正確命名的屬性類的示例。 public class

40、 ObsoleteAttribute 5.10 枚舉 (Enum) 枚舉 (Enum) 值類型從 Enum 類繼承。以下規(guī)則概述枚舉的命名指南: 1 對于 Enum 類型和值名稱使用 Pascal 大小寫。 2 少用縮寫。 3 不要在 Enum 類型名稱上使用 Enum 后綴。 4 對大多數(shù) Enum 類型使用單數(shù)名稱,但是對作為位域的 Enum 類型使用復(fù)數(shù)名稱。 5 總是將 FlagsAttribute 添加到位域 Enum 類型。 5.11 參數(shù)Camel命名規(guī)則,首字母小寫 以下規(guī)則概述參數(shù)的命名指南: 1、使用描述性參數(shù)名稱。參數(shù)名稱應(yīng)當(dāng)具有足夠的描述性,以便參數(shù)的名稱及其類型可用于在大多數(shù)情況下確定它的含義。 2、對參數(shù)名稱使用 Camel 大小寫。 3、 使用描述參數(shù)的含義的名稱,而不要使用描述參數(shù)的類型的名稱。開發(fā)工具將提供有關(guān)參數(shù)的類型的有意義的信息。因此, 通過描述意義,可以更好地使用參數(shù)的名稱。少用基于類型的參數(shù)名稱,僅在適合使用它們的地方使用它們。 4、不要使

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論