計(jì)算機(jī)源代碼編寫(xiě)規(guī)范_第1頁(yè)
計(jì)算機(jī)源代碼編寫(xiě)規(guī)范_第2頁(yè)
計(jì)算機(jī)源代碼編寫(xiě)規(guī)范_第3頁(yè)
計(jì)算機(jī)源代碼編寫(xiě)規(guī)范_第4頁(yè)
免費(fèi)預(yù)覽已結(jié)束,剩余25頁(yè)可下載查看

下載本文檔

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

文檔簡(jiǎn)介

1、計(jì)算機(jī)源代碼編寫(xiě)規(guī)范第一章概述規(guī)范制定原則1 方便代碼的交流和維護(hù)。2 不影響編碼的效率,不與大眾習(xí)慣沖突。3 使代碼更美觀、閱讀更方便。4 使代碼的邏輯更清晰、更易于理解。術(shù)語(yǔ)定義Pascal 大小寫(xiě)將標(biāo)識(shí)符的首字母和后面連接的每個(gè)單詞的首字母都大寫(xiě)。可以對(duì)三字符或更多字符的標(biāo)識(shí)符使用Pascal大小寫(xiě)。例如:BackColorCamel 大小寫(xiě)標(biāo)識(shí)符的首字母小寫(xiě),而每個(gè)后面連接的單詞的首字母都大寫(xiě)。例如:backColor文件命名組織1.3.1 文件命名1 文件名遵從Pascal 命名法,無(wú)特殊情況,擴(kuò)展名小寫(xiě)。2 使用統(tǒng)一而又通用的文件擴(kuò)展名:C# 類 .cs1.3.2 文件注釋1 在每

2、個(gè)文件頭必須包含以下注釋說(shuō)明/*-/ Copyright (C) 2011深圳市鵬為軟件有限公司/ 版權(quán)所有。/ 文件名:/ 文件功能描述:/ 創(chuàng)建標(biāo)識(shí):/ 修改標(biāo)識(shí):/ 修改描述:/ 修改標(biāo)識(shí):/ 修改描述:/-*/文件功能描述只需簡(jiǎn)述,具體詳情在類的注釋中描述。創(chuàng)建標(biāo)識(shí)和修改標(biāo)識(shí)由創(chuàng)建或修改人員的拼音或英文名加日期組成。如:李軼 20040408一天內(nèi)有多個(gè)修改的只需做一個(gè)在注釋說(shuō)明中做一個(gè)修改標(biāo)識(shí)就夠了。在所有的代碼修改處加上修改標(biāo)識(shí)的注釋。第二章代碼外觀2.1列寬代碼列寬控制在110 字符左右。2.2換行當(dāng)表達(dá)式超出或即將超出規(guī)定的列寬,遵循以下規(guī)則進(jìn)行換行1 、在逗號(hào)后換行。2 、

3、在操作符前換行。3 、規(guī)則 1 優(yōu)先于規(guī)則 2。當(dāng)以上規(guī)則會(huì)導(dǎo)致代碼混亂的時(shí)候自己采取更靈活的換行規(guī)則。2.3縮進(jìn)縮進(jìn)應(yīng)該是每行一個(gè)Tab(4 個(gè)空格 ) ,不要在代碼中使用Tab 字符。Visual Studio.Net設(shè)置:工具 - 選項(xiàng) - 文本編輯器 -C#- 制表符 -插入空格2.4空行空行是為了將邏輯上相關(guān)聯(lián)的代碼分塊,以便提高代碼的可閱讀性。在以下情況下使用兩個(gè)空行1 、接口和類的定義之間。2 、枚舉和類的定義之間。3 、類與類的定義之間。在以下情況下使用一個(gè)空行1 、方法與方法、屬性與屬性之間。2 、方法中變量聲明與語(yǔ)句之間。3 、方法與方法之間。4 、方法中不同的邏輯塊之間。

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

5、= s+)n+;PrintSize(“size is“+ size +“ n”);4、 語(yǔ)句中的表達(dá)式之間用空格隔開(kāi)。如for (expr1; expr2; expr3)2.6括號(hào) - ()1 、 左括號(hào)“ ( ” 不要緊靠關(guān)鍵字,中間用一個(gè)空格隔開(kāi)。2 、 左括號(hào)“ ( ” 與方法名之間不要添加任何空格。3、 沒(méi)有必要的話不要在返回語(yǔ)句中使用() 。如if (condition)Array.Remove(1)return 12.7花括號(hào) - 1 、 左花括號(hào) “ ” 放于關(guān)鍵字或方法名的下一行并與之對(duì)齊。如if (condition)public int Add(int x, int y)2

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

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

8、使用而犧牲性能,但必須保持性能和可維護(hù)性之間的平衡。8 、在編寫(xiě)注釋時(shí)使用完整的句子。注釋?xiě)?yīng)該闡明代碼,而不應(yīng)該增加多義性。9 、在編寫(xiě)代碼時(shí)就注釋,因?yàn)橐院蠛芸赡軟](méi)有時(shí)間這樣做。另外,如果有機(jī)會(huì)復(fù)查已編寫(xiě)的代碼,在今天看來(lái)很明顯的東西六周以后或許就不明顯了。10 、避免多余的或不適當(dāng)?shù)淖⑨?,如幽默的不主要的備注?1、 使用注釋來(lái)解釋代碼的意圖。它們不應(yīng)作為代碼的聯(lián)機(jī)翻譯。12、 注釋代碼中不十分明顯的任何內(nèi)容。13 、為了防止問(wèn)題反復(fù)出現(xiàn),對(duì)錯(cuò)誤修復(fù)和解決方法代碼總是使用注釋,尤其是在團(tuán)隊(duì)環(huán)境中。14 、對(duì)由循環(huán)和邏輯分支組成的代碼使用注釋。這些是幫助源代碼讀者的主要方面。15 、在整個(gè)應(yīng)

9、用程序中,使用具有一致的標(biāo)點(diǎn)和結(jié)構(gòu)的統(tǒng)一樣式來(lái)構(gòu)造注釋。16 、用空白將注釋同注釋分隔符分開(kāi)。 在沒(méi)有顏色提示的情況下查看注釋時(shí),這樣做會(huì)使注釋很明顯且容易被找到。17 、在所有的代碼修改處加上 修改標(biāo)識(shí) 的注釋。18 、為了是層次清晰,在閉合的右花括號(hào)后注釋該閉合所對(duì)應(yīng)的起點(diǎn)。namespace Pmway.Procument.Web / namespace Pmway.Procument.Web3.2文檔型注釋該類注釋采用 .Net 已定義好的Xml 標(biāo)簽來(lái)標(biāo)記,在聲明接口、類、方法、屬性、字段都應(yīng)該使用該類注釋,以便代碼完成后直接生成代碼文檔,讓別人更好的了解代碼的實(shí)現(xiàn)和接口。如/MyM

10、ethod 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 不再使用的代碼。2 臨時(shí)測(cè)試屏蔽某些代碼。用法/* 修改標(biāo)識(shí) 修改原因 . . . (the source code )*/3.4單行注釋該類注釋用于1 方法內(nèi)的代碼注釋。如變量的聲明、代碼或代碼段的解釋。

11、注釋示例:/ 注釋語(yǔ)句/private int number;或/ 注釋語(yǔ)句private int number;2 方法內(nèi)變量的聲明或花括號(hào)后的注釋, 注釋示例:if ( 1 = 1)/ always truestatement; / always true3.5注釋標(biāo)簽標(biāo)簽用法作用text為您提供了一種將說(shuō)明中的文本標(biāo)記為代碼的方text 希望將其指示為代碼的文本。法。使用 將多行指示為代碼 content 用于諸如 或 等標(biāo)記內(nèi),content段落文本。使您得以將結(jié)構(gòu)添加到文本中。應(yīng)當(dāng)用于方法聲明的注釋中,以描述方法的一個(gè)name descriptionname 為方法參數(shù)名。將此名稱用

12、單引號(hào)括起參數(shù)。來(lái)()。name 標(biāo)記為您提供了一種指示詞為參數(shù)name要引用的參數(shù)名。將此名稱用雙引號(hào)括起來(lái)的方法。可以處理 XML 文件,從而用某種獨(dú)特的() 。方法格式化該參數(shù)。使您得以從文本內(nèi)指定鏈接。 使用 指membercref = 對(duì)可以通過(guò)當(dāng)前編譯環(huán)境示希望在“請(qǐng)參閱”一節(jié)中出現(xiàn)的文本。member進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將傳遞給member輸出 XML 中的元素名。必須將 member括在雙引號(hào) ( )中。使您得以指定希望在“請(qǐng)參閱”一節(jié)中出現(xiàn)的文membercref = 對(duì)可以通過(guò)當(dāng)前編譯環(huán)境本。使用 從文本member進(jìn)行調(diào)用的成員或字

13、段的引用。編譯器檢查到給定代碼元素存在后,將member傳遞給輸出 XML 中的元素名。必須將括在member雙引號(hào) ( )中 description使用 標(biāo)記可以指定使用方法或其他description庫(kù)成員的示例。一般情況下,這將涉及到代碼示例的說(shuō)明。標(biāo)記的使用。content 記為您提供了一種將多行指示為代碼的方法。使content 為希望將其標(biāo)記為代碼的文本。用 指示應(yīng)將說(shuō)明中的文本標(biāo)記為代碼應(yīng)當(dāng)用于描述類型成員。 使用 以提供description此處 description為對(duì)象的摘要。有關(guān)類型本身的信息。exception 標(biāo)記使您可以指定類能夠引發(fā)的異cref=常。member

14、 descriptioncref = member 對(duì)可從當(dāng)前編譯環(huán)境中獲取的異常的引用。編譯器檢查到給定異常存在后,將 member轉(zhuǎn)換為輸出XML 中的規(guī)范化元素名。必須將member括在雙引號(hào) ()中。description說(shuō)明。include file=filename 標(biāo)記使您得以引用描述源代碼中類型path=tagpath= /和成員的另一文件中的注釋。這是除了將文檔注name idfilename包含文檔的文件名。該文件名可釋直接置于源代碼文件中之外的另一種可選方用路徑加以限定。將filename 括在單引號(hào)法。中()。 標(biāo)記使用 XML XPath 語(yǔ)法。有關(guān)自定Tagpath

15、:filename中指向標(biāo)記名的標(biāo)記路義 使用的方法,請(qǐng)參閱 XPath 文徑。將此路徑括在單引號(hào)中()。檔。name 注釋前邊的標(biāo)記中的名稱說(shuō)明符;名稱具有一個(gè)id 。id位于注釋之前的標(biāo)記的 id 。將此 id括在雙引號(hào)中 ( )。list type=bullet | number | 塊用于定義表或定義列表中的標(biāo)table題行。定義表時(shí),只需為標(biāo)題中的項(xiàng)提供一個(gè)項(xiàng)。列表中的每一項(xiàng)用 塊指定。創(chuàng)建定義列term表時(shí),既需要指定term 也需要指定 text 。但是,description對(duì)于表、項(xiàng)目符號(hào)列表或編號(hào)列表,只需為text提供一個(gè)項(xiàng)。列表或表所擁有的 塊數(shù)可以根據(jù)需要而term定

16、。descriptionterm 定義的項(xiàng),該項(xiàng)將在text中定義。description目符號(hào)列表或編號(hào)列表中的項(xiàng)或者term 的定義。permission標(biāo)記使您得以將成員的訪問(wèn)記入cref=cref = member descriptionmember 對(duì)可以通過(guò)當(dāng)前編譯環(huán)境文檔。 System.Security.PermissionSet 以指定對(duì)成員的訪問(wèn)。使您得進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將member轉(zhuǎn)換為輸出 XML 中的規(guī)范化元素名。必須將member括在雙引號(hào) ( )中。description成員的訪問(wèn)的說(shuō)明。 description 標(biāo)記是

17、可以指定有關(guān)類或其他類型的description 成員的說(shuō)明。概述信息的位置。 是可以描述該類型的成員的位置。 description 標(biāo)記應(yīng)當(dāng)用于方法聲明的注釋,以描description 返回值的說(shuō)明。述返回值。 property-description 標(biāo)記使您得以描述屬性。請(qǐng)注意,當(dāng)在property-description屬性的說(shuō)明。Visual Studio .NET開(kāi)發(fā)環(huán)境中通過(guò)代碼向?qū)砑訉傩詴r(shí),它將會(huì)為新屬性添加 標(biāo)記。然后,應(yīng)該手動(dòng)添加 標(biāo)記以描述該屬性所表示的值。第四章申明4.1每行聲明數(shù)一行只建議作一個(gè)聲明,并按字母順序排列。如int level;/推薦int size

18、;/推薦int x, y;/不推薦4.2初始化建議在變量聲明時(shí)就對(duì)其做初始化。4.3位置變量建議置于塊的開(kāi)始處,不要總是在第一次使用它們的地方做聲明。如void MyMethod()int int1 = 0;/ beginning of method blockif (condition)int int2 = 0;/ beginning of if block.不過(guò)也有一個(gè)例外for (int i = 0; i maxLoops; i+).應(yīng)避免不同層次間的變量重名,如int count;.void MyMethod()if (condition)int count = 0;/避免.4.4類和

19、接口的聲明1 在方法名與其后的左括號(hào)間沒(méi)有任何空格。2 左花括號(hào) “ ” 出現(xiàn)在聲明的下行并與之對(duì)齊,單獨(dú)成行。3 方法間用一個(gè)空行隔開(kāi)。4.5字段的聲明不要使用是public或 protected的實(shí)例字段。 如果避免將字段直接公開(kāi)給開(kāi)發(fā)人員,可以更輕松地對(duì)類進(jìn)行版本控制,原因是在維護(hù)二進(jìn)制兼容性時(shí)字段不能被更改為屬性??紤]為字段提供get和 set屬性訪問(wèn)器,而不是使它們成為公共的。get和 set屬性訪問(wèn)器中可執(zhí)行代碼的存在使得可以進(jìn)行后續(xù)改進(jìn),如在使用屬性或者得到屬性更改通知時(shí)根據(jù)需要?jiǎng)?chuàng)建對(duì)象。下面的代碼示例闡釋帶有g(shù)et和set屬性訪問(wèn)器的私有實(shí)例字段的正確使用。示例:public

20、class Control: Componentprivate int handle;public int Handlegetreturn handle;第五章命名規(guī)范5.1命名概述名稱應(yīng)該說(shuō)明“什么”而不是“如何”。通過(guò)避免使用公開(kāi)基礎(chǔ)實(shí)現(xiàn)(它們會(huì)發(fā)生改變)的名稱,可以保留簡(jiǎn)化復(fù)雜性的抽象層。例如,可以使用GetNextStudent(),而不是 GetNextArrayElement()。命名原則是:選擇正確名稱時(shí)的困難可能表明需要進(jìn)一步分析或定義項(xiàng)的目的。使名稱足夠長(zhǎng)以便有一定的意義,并且足夠短以避免冗長(zhǎng)。唯一名稱在編程上僅用于將各項(xiàng)區(qū)分開(kāi)。表現(xiàn)力強(qiáng)的名稱是為了幫助人們閱讀;因此,提供人

21、們可以理解的名稱是有意義的。不過(guò),請(qǐng)確保選擇的名稱符合適用語(yǔ)言的規(guī)則和標(biāo)準(zhǔn)。以下幾點(diǎn)是推薦的命名方法。1、避免容易被主觀解釋的難懂的名稱,如方面名AnalyzeThis(),或者屬性名xxK8 。這樣的名稱會(huì)導(dǎo)致多義性。2、在類屬性的名稱中包含類名是多余的,如Book.BookTitle。而是應(yīng)該使用Book.Title。3、只要合適,在變量名的末尾或開(kāi)頭加計(jì)算限定符(Avg、Sum、Min、 Max、 Index )。4、在變量名中使用互補(bǔ)對(duì),如min/max、 begin/end和open/close。5、布爾變量名應(yīng)該包含Is,這意味著Yes/No或 True/False值,如fileI

22、sFound。6、在命名狀態(tài)變量時(shí),避免使用諸如Flag的術(shù)語(yǔ)。狀態(tài)變量不同于布爾變量的地方是它可以具有兩個(gè)以上的可能值。不是使用documentFlag,而是使用更具描述性的名稱,如documentFormatType。 (此項(xiàng)只供參考)7、即使對(duì)于可能僅出現(xiàn)在幾個(gè)代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對(duì)于短循環(huán)索引使用單字母變量名,如i或 j 。 可能的情況下,盡量不要使用原義數(shù)字或原義字符串,如For i = 1 To 7。而是使用命名常數(shù),如For i = 1 To NUM_DAYS_IN_WEEK以便于維護(hù)和理解。5.2大小寫(xiě)規(guī)則大寫(xiě)標(biāo)識(shí)符中的所有字母都大寫(xiě)。僅對(duì)于由兩

23、個(gè)或者更少字母組成的標(biāo)識(shí)符使用該約定。例如:System. IOSystem.Web. UI下表匯總了大寫(xiě)規(guī)則,并提供了不同類型的標(biāo)識(shí)符的示例。標(biāo)識(shí)符大小寫(xiě)示例類PascalAppDomain枚舉類型PascalErrorLevel枚舉值PascalFatalError事件PascalValueChange異常類PascalWebException注意 總是以 Exception后綴結(jié)尾。只讀的靜態(tài)字段PascalRedValue接口PascalIDisposable注意 總是以 I 前綴開(kāi)始。方法PascalToString命名空間PascalSystem.Drawing屬性PascalBa

24、ckColor公共實(shí)例字段PascalRedValue注意 很少使用。屬性優(yōu)于使用公共實(shí)例字段。受保護(hù)的實(shí)例字段CamelredValue注意 很少使用。屬性優(yōu)于使用受保護(hù)的實(shí)例字段。私有的實(shí)例字段CamelredValue參數(shù)CameltypeName方法內(nèi)的變量CamelbackColor5.3縮寫(xiě)為了避免混淆和保證跨語(yǔ)言交互操作,請(qǐng)遵循有關(guān)區(qū)縮寫(xiě)的使用的下列規(guī)則:1不要將縮寫(xiě)或縮略形式用作標(biāo)識(shí)符名稱的組成部分。例如,使用GetWindow,而不要使用GetWin 。2不要使用計(jì)算機(jī)領(lǐng)域中未被普遍接受的縮寫(xiě)。3在適當(dāng)?shù)臅r(shí)候,使用眾所周知的縮寫(xiě)替換冗長(zhǎng)的詞組名稱。例如,用UI 作為 User

25、 Interface縮寫(xiě),用 OLAP 作為 On-line Analytical Processing的縮寫(xiě)。4 在使用縮寫(xiě)時(shí),對(duì)于超過(guò)兩個(gè)字符長(zhǎng)度的縮寫(xiě)請(qǐng)使用Pascal 大小寫(xiě)或 Camel 大小寫(xiě)。例如,使用HtmlButton 或 HTMLButton 。但是,應(yīng)當(dāng)大寫(xiě)僅有兩個(gè)字符的縮寫(xiě),如,System.IO ,而不是 System.Io 。5 不要在標(biāo)識(shí)符或參數(shù)名稱中使用縮寫(xiě)。如果必須使用縮寫(xiě),對(duì)于由多于兩個(gè)字符所組成的縮寫(xiě)請(qǐng)使用 Camel 大小寫(xiě),雖然這和單詞的標(biāo)準(zhǔn)縮寫(xiě)相沖突。5.4命名空間1 、命名命名空間時(shí)的一般性規(guī)則是使用公司名稱,后跟技術(shù)名稱和可選的功能與設(shè)計(jì),如下所

26、示。CompanyName.TechnologyName.Feature.Design例如:namespace Langchao.Procurement/ 浪潮公司的采購(gòu)單管理系統(tǒng)namespace Langchao.Procurement.DataRules/ 浪潮公司的采購(gòu)單管理系統(tǒng)的業(yè)務(wù)規(guī)則模塊2 、命名空間使用 Pascal 大小寫(xiě),用逗號(hào)分隔開(kāi)。3、 TechnologyName 指的是該項(xiàng)目的英文縮寫(xiě),或軟件名。4、命名空間和類不能使用同樣的名字。例如,有一個(gè)類被命名為Debug后,就不要再使用Debug 作為一個(gè)名稱空間名。5.5類1、 使用 Pascal大小寫(xiě)。2、用名詞或名詞

27、短語(yǔ)命名類。3、使用全稱避免縮寫(xiě),除非縮寫(xiě)已是一種公認(rèn)的約定,如URL、 HTML4 、不要使用類型前綴,如在類名稱上對(duì)類使用C 前綴。例如,使用類名稱FileStream,而不是CFileStream 。5 、不要使用下劃線字符(_) 。6 、有時(shí)候需要提供以字母I開(kāi)始的類名稱,雖然該類不是接口。只要I是作為類名稱組成部分的整個(gè)單詞的第一個(gè)字母,這便是適當(dāng)?shù)?。例如,類名稱IdentityStore是適當(dāng)?shù)摹T谶m當(dāng)?shù)牡胤?,使用?fù)合單詞命名派生的類。派生類名稱的第二個(gè)部分應(yīng)當(dāng)是基類的名稱。例如,ApplicationException對(duì)于從名為Exception的類派生的類是適當(dāng)?shù)拿Q,原因Ap

28、plicationException是一種Exception。請(qǐng)?jiān)趹?yīng)用該規(guī)則時(shí)進(jìn)行合理的判斷。例如,Button對(duì)于從Control派生的類是適當(dāng)?shù)拿Q。盡管按鈕是一種控件,但是將Control作為類名稱的一部分將使名稱不必要地加長(zhǎng)。public class FileStreampublic class Buttonpublic class String5.6接口以下規(guī)則概述接口的命名指南:1、用名詞或名詞短語(yǔ),或者描述行為的形容詞命名接口。例如,接口名稱IComponent 使用描述性名詞。接口名稱 ICustomAttributeProvider使用名詞短語(yǔ)。名稱IPersistable使

29、用形容詞。2、使用 Pascal 大小寫(xiě)。3、少用縮寫(xiě)。4、給接口名稱加上字母 I 前綴,以指示該類型為接口。在定義類/ 接口對(duì)(其中類是接口的標(biāo)準(zhǔn)實(shí)現(xiàn))時(shí)使用相似的名稱。兩個(gè)名稱的區(qū)別應(yīng)該只是接口名稱上有字母I 前綴。5、不要使用下劃線字符 (_) 。6、當(dāng)類是接口的標(biāo)準(zhǔn)執(zhí)行時(shí),定義這一對(duì)類/ 接口組合就要使用相似的名稱。兩個(gè)名稱的不同之處只是接口名前有一個(gè) I 前綴。以下是正確命名的接口的示例。public interface IServiceProviderpublic interface IFormatable以下代碼示例闡釋如何定義IComponent接口及其標(biāo)準(zhǔn)實(shí)現(xiàn)Componen

30、t 類。public interface IComponent/ Implementation code goes here.public class Component: IComponent/ Implementation code goes here.5.7屬性 (Attribute)應(yīng)該總是將后綴Attribute添加到自定義屬性類。以下是正確命名的屬性類的示例。public class ObsoleteAttribute5.8枚舉 (Enum)枚舉 (Enum)值類型從 Enum 類繼承。以下規(guī)則概述枚舉的命名指南:1對(duì)于 Enum 類型和值名稱使用Pascal大小寫(xiě)。2 少用縮寫(xiě)。

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

32、地方使用它們。4 、不要使用保留的參數(shù)。保留的參數(shù)是專用參數(shù),如果需要,可以在未來(lái)的版本中公開(kāi)它們。相反,如果在類庫(kù)的未來(lái)版本中需要更多的數(shù)據(jù),請(qǐng)為方法添加新的重載。5 、不要給參數(shù)名稱加匈牙利語(yǔ)類型表示法的前綴。以下是正確命名的參數(shù)的示例。Type GetType(string typeName)string Format(string format, args() As object)5.10方法以下規(guī)則概述方法的命名指南:1 使用動(dòng)詞或動(dòng)詞短語(yǔ)命名方法。2 使用 Pascal 大小寫(xiě)。3 以下是正確命名的方法的實(shí)例。RemoveAll()GetCharArray()Invoke()5.1

33、1屬性 (property)以下規(guī)則概述屬性的命名指南:1 使用名詞或名詞短語(yǔ)命名屬性。2 使用 Pascal 大小寫(xiě)。3 不要使用匈牙利語(yǔ)表示法。4 考慮用與屬性的基礎(chǔ)類型相同的名稱創(chuàng)建屬性。例如,如果聲明名為Color的屬性,則屬性的類型同樣應(yīng)該是Color 。請(qǐng)參閱本主題中后面的示例。以下代碼示例闡釋正確的屬性命名。public class SampleClasspublic Color BackColor/ Code for Get and Set accessors goes here.以下代碼示例闡釋提供其名稱與類型相同的屬性。public enum Color/ Insert c

34、ode for Enum here.public class Controlpublic Color Colorget/ Insert code here.set/ Insert code here.以下代碼示例不正確,原因是Color屬性是 Integer類型的。public enum Color/ Insert code for Enum here.public class Controlpublic int Color/ Insert code here在不正確的示例中,不可能引用Color枚舉的成員。 Color.Xxx將被解釋為訪問(wèn)一個(gè)成員,該成員首先獲取Color屬性( C# 中為

35、 int類型)的值,然后再訪問(wèn)該值的某個(gè)成員(該成員必須是 System.Int32的實(shí)例成員)。5.12事件以下規(guī)則概述事件的命名指南:1、對(duì)事件處理程序名稱使用EventHandler后綴。2、指定兩個(gè)名為sender和 e的參數(shù)。 sender參數(shù)表示引發(fā)事件的對(duì)象。sender參數(shù)始終是 object類型的,即使在可以使用更為特定的類型時(shí)也如此。與事件相關(guān)聯(lián)的狀態(tài)封裝在名為 e的事件類的實(shí)例中。對(duì)e參數(shù)類型使用適當(dāng)而特定的事件類。3、用 EventArgs后綴命名事件參數(shù)類。4 、考慮用動(dòng)詞命名事件。5、使用動(dòng)名詞(動(dòng)詞的“ ing ”形式)創(chuàng)建表示事件前的概念的事件名稱,用過(guò)去式表示

36、事件后。例如,可以取消的Close 事件應(yīng)當(dāng)具有 Closing事件和 Closed 事件。不要使用BeforeXxx/AfterXxx命名模式。6、不要在類型的事件聲明上使用前綴或者后綴。例如,使用Close ,而不要使用 OnClose 。7、通常情況下,對(duì)于可以在派生類中重寫(xiě)的事件,應(yīng)在類型上提供一個(gè)受保護(hù)的方法(稱為OnXxx)。此方法只應(yīng)具有事件參數(shù)e ,因?yàn)榘l(fā)送方總是類型的實(shí)例。以下示例闡釋具有適當(dāng)名稱和參數(shù)的事件處理程序。public delegate void MouseEventHandler(object sender, MouseEventArgs e);以下示例闡釋正確

37、命名的事件參數(shù)類。public class MouseEventArgs : EventArgsint x;int y;public MouseEventArgs(int x, int y)this.x = x;this.y = y;public int Xgetreturn x;public int Ygetreturn y;5.13常量 (const)以下規(guī)則概述常量的命名指南:所有單詞大寫(xiě),多個(gè)單詞之間用_隔開(kāi)。如public const string PAGE_TITLE = Welcome;5.14字段以下規(guī)則概述字段的命名指南:1、 private、 protected使用 Cam

38、el 大小寫(xiě)。2、 public使用 Pascal大小寫(xiě)。3、拼寫(xiě)出字段名稱中使用的所有單詞。僅在開(kāi)發(fā)人員一般都能理解時(shí)使用縮寫(xiě)。字段名稱不要使用大寫(xiě)字母。下面是正確命名的字段的示例。class SampleClassstring url;string destinationUrl;4 、不要對(duì)字段名使用匈牙利語(yǔ)表示法。好的名稱描述語(yǔ)義,而非類型。5、不要對(duì)字段名或靜態(tài)字段名應(yīng)用前綴。具體說(shuō)來(lái),不要對(duì)字段名稱應(yīng)用前綴來(lái)區(qū)分靜態(tài)和非靜態(tài)字段。例如,應(yīng)用g_或 s_前綴是不正確的。6、對(duì)預(yù)定義對(duì)象實(shí)例使用公共靜態(tài)只讀字段。如果存在對(duì)象的預(yù)定義實(shí)例,則將它們聲明為對(duì)象本身的公共靜態(tài)只讀字段。使用Pa

39、scal大小寫(xiě),原因是字段是公共的。下面的代碼示例闡釋公共靜態(tài)只讀字段的正確使用。public struct Colorpublic static readonly Color Red = new Color(0x0000FF);public Color(int rgb)/ Insert code here.public Color(byte r, byte g, byte b)/ Insert code here.public byte RedValuegetreturn Color;5.15靜態(tài)字段以下規(guī)則概述靜態(tài)字段的命名指南:1 、使用名詞、名詞短語(yǔ)或者名詞的縮寫(xiě)命名靜態(tài)字段。2 、使

40、用 Pascal 大小寫(xiě)。3 、對(duì)靜態(tài)字段名稱使用匈牙利語(yǔ)表示法前綴。4 、建議盡可能使用靜態(tài)屬性而不是公共靜態(tài)字段。5.16集合集合是一組組合在一起的類似的類型化對(duì)象,如哈希表、查詢、堆棧、字典和列表,集合的命名建議用復(fù)數(shù)。5.17措詞避免使用與常用的.NET 框架命名空間重復(fù)的類名稱。例如,不要將以下任何名稱用作類名稱:System、 Collections、 Forms 或 UI 。有關(guān) .NET框架命名空間的列表,請(qǐng)參閱類庫(kù)。另外,避免使用和以下關(guān)鍵字沖突的標(biāo)識(shí)符。AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBaseBooleanByRefByteByValCallCaseCatchCBoolCByteCcharCDateCDecCDblCharCintClassCLngCObjConstCshortCSngCStrCTypeDateDecima

溫馨提示

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

評(píng)論

0/150

提交評(píng)論