編碼命名規(guī)范NET很全很實(shí)用_第1頁
編碼命名規(guī)范NET很全很實(shí)用_第2頁
編碼命名規(guī)范NET很全很實(shí)用_第3頁
編碼命名規(guī)范NET很全很實(shí)用_第4頁
編碼命名規(guī)范NET很全很實(shí)用_第5頁
已閱讀5頁,還剩4頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、編碼命名規(guī)范(.NET)(很全,很實(shí)用)一、命名約定1.常用命名術(shù)語說明 Pascal命名格式 將標(biāo)識(shí)符的首字母和后面連接的每個(gè)單詞的首字母都大寫??梢詫?duì)三字符或更多字符的標(biāo)識(shí)符使用 Pascal 大小寫。例如:BackColor Camel命名格式 標(biāo)識(shí)符的首字母小寫,而每個(gè)后面連接的單詞的首字母都大寫。例如:backColor2.名稱空間命名 創(chuàng)建命名空間的名稱時(shí)應(yīng)使用以下原則: “公司名稱.技術(shù)名稱.軟件產(chǎn)品代號(hào)”或“公司名稱.產(chǎn)品技術(shù)代號(hào)” 例如:Nd.ClassLibrary.Charting 命名空間就表示Nd公司里的公用類庫里的Charting畫圖類庫。 又如:Net91com.

2、Movies.DataAccess 名稱空間標(biāo)識(shí) 91.COM 電影站的數(shù)據(jù)訪問層程序集。3.類命名使用完整的單詞,避免用縮寫。比如ButtonGrid比BtnGrd要長(zhǎng),但是完整從而可讀性好。 一般使用名詞。類通常表示一種對(duì)象,而對(duì)象一般使用具有名詞性質(zhì)的名稱。 異常類命名:類以Exception結(jié)尾, 比如class EQException: Exception4.局部變量命名 私有字段、函數(shù)參數(shù)和函數(shù)內(nèi)部聲明的變量使用camel Casing 不使用的是用以指明字段作用域的前綴。如 s_作為共享字段或靜態(tài)字段的前綴,以及把g_作為全局變量的前綴。 不使用用以指明數(shù)據(jù)類型的匈牙利前綴表示法

3、,如(strReturn)。在Microsoft Visual Studio .NET環(huán)境中,只要在代碼編輯器中將鼠標(biāo)移到域名上,就可以得到關(guān)于字段或變量的類型信息。另外,類型前綴限制了開發(fā)者在需要時(shí)改變變量的類型的能力,或者更糟糕的是,開發(fā)者改變了變量的類型,卻沒有為變量重新命名,從而產(chǎn)生具有誤導(dǎo)性的代碼。5.只讀靜態(tài)變量 Pascal大小寫6.類私有變量 _ + Pascal大小寫。如:_BackColor7.屬性命名使用Pascal Casing。 屬性名稱通常都是名詞。例如Text、SelectedIndex和Width。8.接口命名 使用Pascal Casing。 在接口名稱前綴添

4、加前綴 I 。 接口名稱盡量具有描述性,并使用形容詞,因?yàn)榻涌诔3S糜诮o一個(gè)類添加某種能力?;谛稳菰~的名稱有IComparable和IFormattable等9.方法命名 使用Pascal Casing。 方法名通常是動(dòng)詞。方法實(shí)現(xiàn)一個(gè)對(duì)象的行為功能。方法執(zhí)行某些操作。方法名的例子有Read、Write、Start和Stop。 當(dāng)重載方法時(shí),參數(shù)的順序和命名要一致。 定義方法名時(shí)不要使用縮寫。 方法參數(shù) Camel大小寫結(jié)構(gòu)10.事件命名 使用Pascal Casing。 事件名稱通常是動(dòng)詞。比如Click、Load和Paint11.枚舉類型使用Pascal Casing。如:EQForma

5、tConditionOperator。枚舉值也是Pascal,比如EQFormatConditionOperator. Equal12.委托命名delegate AfterOperationHandler,總是以Handler為后綴結(jié)尾13.類對(duì)象命名 使用obj前綴Pascal命名的方式,來告知我們這個(gè)變量是一個(gè)對(duì)象 比如:EQApplication objApp = new EQApplication();14.Attribute Pascal大小寫,并以Attribute結(jié)尾15.控件命名ButtonbtnbtnOKCalendarcalCheckBoxchkchkReadOnlyChe

6、ckBoxListchklCompareValidatorvalcCustomValidatorvalxDataGridgridDataListlistDropDownListddlHyperLinklnkImageimgImageButtonibtnLabellblLinkButtonlbtnListBoxlstPanelpnlRadioButtonradRadioButtonListradlRangeValidatorvalgRegularExpressionvaleRequiredFieldValidatorvalrTabletblTableCelltblcTableRowtblrTex

7、tBoxtxttxtLastNameValidationSummaryvals 16.其它命名ConnectionconnCommandcmdParameterparamDataAdapteradptDataReaderdrDataSetdsDataTabledtDataRowrowDataColumncolDataRelationrelDataViewdv17.注意: 不要使用兩個(gè)字母一樣,但大小寫不一樣的命名來做命名空間,否則在一些不區(qū)分大小寫的語言里將不能正確區(qū)分這些命名空間聲明。例如:namespace ee.cummings和namespace EE.cummings這兩個(gè)聲明 不要

8、使用大小寫區(qū)分參數(shù)的形式來創(chuàng)建方法。比如:void MyFunction(string a, string A) 不要使用大小寫的不同來分別命名一個(gè)屬性。比如: int Color get,set int COLOR get,set 不要使用大小寫的不同來分別命名一個(gè)方法的名字。比如: void calculate() void Calculate() 不要使用標(biāo)志名稱的一部分作為該標(biāo)志名稱的縮寫或簡(jiǎn)寫。比如:GetWindow簡(jiǎn)寫為GetWin。 盡量避免用縮寫方式來對(duì)方法的參數(shù)命名,即方法的參數(shù)命名盡量保持完整,讓人一目了然。 盡量避免就一個(gè)字母的命名,如 i 或 t,而用 index 或

9、 temp二、代碼格式化1.的位置 與各單獨(dú)占一行。例如: if(x > 5) /代碼 2.if、if else的格式 if(condition) DoSomething(); if(condition) DoSomething(); else DoSomethingOther(); if(condition) DoSomething(); else if(condition) DoSomethingOther(); else DoSomethingOtherAgain(); 3.for、foreach的格式 /for格式 for(int i = 0; i < 5; +i) / 代

10、碼 /foreach的格式 foreach(int i in IntList) / 代碼 4.whileswitch的格式 /while格式 while(condition) / 代碼 /switch的格式 switch(condition) case A: . break; case B: . break; default: . break; 5.try的格式 try . catch(Exception e) . /或者 try . catch(Exception e) . finally . 6.空格 對(duì)于有兩個(gè)或兩個(gè)以上空格時(shí),一般不要使用空格來表示縮進(jìn),使用Tab 逗號(hào)、分號(hào)之后有一個(gè)

11、空格 如:TestMethod(a, b, c); 操作符前后有一個(gè)空格,但是單目運(yùn)算符除外(例如: !運(yùn)算符)。 如:for(int i = 0; i < 10; +i)7.在執(zhí)行統(tǒng)一任務(wù)的各個(gè)語句組之間插入一個(gè)空行。8.名稱空間寫法,各類名稱空間插入空行,同一類命命空間按字母序號(hào)排列 如: using System; using System.Text; using System.Collections; using System.ComponentModel; using System.Data; using System.Drawing; using System.Web; us

12、ing System.Web.SessionState; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.HtmlControls; using net91com.Movies.DataAccess; using net91com.Movies.Business; using net91com.CommonComponent;三、代碼注釋1.注釋的目的 a. 文字說明代碼的作用 (即為什么要用編寫該代碼,而不是如何編寫); b. 確指出該代碼的編寫思路和邏輯方法 ; c. 人們注意到代碼中的重要

13、轉(zhuǎn)折點(diǎn) ; d. 使代碼的閱讀者不必在他們的頭腦中仿真運(yùn)行代碼的執(zhí)行方法2.對(duì)類文件進(jìn)行屬性注釋說明 /= / 公司: / 項(xiàng)目名稱: / 模塊名稱: / 開發(fā)人員: / 開發(fā)日期: / 功能簡(jiǎn)介: / 最后修改時(shí)間: / 修改人員: /=3.避免對(duì)很顯然易懂的語句進(jìn)行注釋說明4.代碼應(yīng)該能作到自我解釋代碼作用的功能。5.注釋來說明何時(shí)可能出錯(cuò)和為什么出錯(cuò)6.在編寫代碼前進(jìn)行注釋,給類、屬性或方法前面加上功能注釋7.注釋的內(nèi)容 a.實(shí)參/ 參數(shù) 參數(shù)類型 , 參數(shù)用來做什么, 任何約束或前提條件b.字段/屬性 字段描述 , 注釋所有使用的不變量, 并行事件可見性決策 c.類 類的目的 ,已知的

14、問題 , 類的開發(fā)/維護(hù)歷史 , 注釋出采用的不變量 , 并行策略 d.接口 目的 它應(yīng)如何被使用以及如何不被使用 e.局部變量 用處/目的f.成員函數(shù)注釋 成員函數(shù)做什么以及它為什么做這個(gè) 哪些參數(shù)必須傳遞給一個(gè)成員函數(shù) 成員函數(shù)返回什么 已知的問題 任何由某個(gè)成員函數(shù)拋出的異常 可見性決策 成員函數(shù)是如何改變對(duì)象的 包含任何修改代碼的歷史 如何在適當(dāng)情況下調(diào)用成員函數(shù)的例子適用的前提條件和后置條件 g.成員函數(shù)內(nèi)部注釋 控制結(jié)構(gòu) 代碼做了些什么以及為什么這樣做 局部變量 難或復(fù)雜的代碼 處理順序8.增強(qiáng)注釋的可讀性 a. 使用完整的語句。 b. 避免使用縮寫。 c. 將整個(gè)單詞大寫,以突出

15、它們的重要性。9.請(qǐng)?jiān)诿總€(gè)if語句/switch語句/循環(huán)語句的前面加上注釋四、類/接口成員設(shè)計(jì)1.設(shè)計(jì)類和方法時(shí)的原則 創(chuàng)建更加容易調(diào)試和維護(hù)的方法 創(chuàng)建具有強(qiáng)大內(nèi)聚力的類 創(chuàng)建高度專用的方法 創(chuàng)建松散連接的方法 盡量使方法具有獨(dú)立性 提高方法的扇入性 降低方法的扇出性2.名稱空間引用 using 聲明一律以.NET基礎(chǔ)框架命名空間、第三方組件命名空間、最后是公司內(nèi)部產(chǎn)品命名空間排序。using System; using System.Collections; using Microsoft.CSharp; using Sirc.Egss.FileExchangeServer;3.成員排列

16、規(guī)則 盡量不要使用類public變量,用屬性代替 類成員以internal、private、protected、public排列。public部分按照構(gòu)造函數(shù)、屬性、方法、事件的順序排列。4.每個(gè)類文件名應(yīng)盡量保持與內(nèi)部類名一致5.盡量避免手動(dòng)去修改工具環(huán)境自動(dòng)生成的代碼6.避免在一個(gè)類文件里放置多個(gè)類7.一個(gè)類文件里應(yīng)該有且僅有一個(gè)命名空間,避免在一個(gè)類文件里包含多個(gè)不同的命名空間8.避免在一個(gè)類文件里代碼超過 500 行(除去自動(dòng)生成的代碼)9.數(shù)據(jù)結(jié)構(gòu)里,應(yīng)該總是更傾向使用C#的范型generic10.盡量縮小變量的作用域11.接口設(shè)計(jì) 將接口名去掉 I 前綴后,作為這種默認(rèn)實(shí)現(xiàn)類的名稱

17、。比如IComponent的默認(rèn)實(shí)現(xiàn)類是Component 每個(gè)接口不應(yīng)當(dāng)有超過20個(gè)成員的情況,一般應(yīng)保持在12個(gè)左右12.方法設(shè)計(jì) 創(chuàng)建松散連接和高度專用的方法 創(chuàng)建方法時(shí),設(shè)法將每個(gè)方法視為一個(gè)黑箱,其他例程不應(yīng)要求了解該方法的內(nèi)部工作情況,該方法也不應(yīng)要求了解它外面的工程情況。這就是為什么你的方法應(yīng)依靠參數(shù)而不應(yīng)依靠全局變量的原因。 a.將復(fù)雜進(jìn)程放入專用方法。 b.將專用方法中可能要修改的代碼隔離。 c.將數(shù)據(jù)輸入/輸出(I/O)放入專用方法。 d.將業(yè)務(wù)規(guī)則封裝在專用方法中。 e.有返回值的方法必須在方法命名里包含對(duì)該返回值的信息描述,如GetObjectStat()。 f.局部變

18、量的聲明,應(yīng)盡可能緊靠在它首次被使用的地方 g.一個(gè)方法里的代碼避免超過 25 行,最多不能超過 50 行(除去空行、注釋) h.一行代碼最多不要超過 80 個(gè)字符 i.避免使用強(qiáng)制轉(zhuǎn)換,推薦使用as操作符進(jìn)行防御性轉(zhuǎn)換 j.當(dāng)需要?jiǎng)?chuàng)建一個(gè)長(zhǎng)字符串時(shí),推薦使用StringBuilder,而非string k.避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來替代(枚舉和常量)13.屬性設(shè)計(jì)避免使用返回?cái)?shù)組的屬性。這些屬性會(huì)降低程序的效率 不要提供public或protected型的成員變量,而應(yīng)當(dāng)使用屬性替代之 五、數(shù)據(jù)庫設(shè)計(jì)規(guī)范數(shù)據(jù)庫名 Pascal Casing命名規(guī)則 以名詞命名,直觀,可讀性強(qiáng)表名 Pascal Casing命名規(guī)則 應(yīng)以完整單詞命名,避免使用縮寫。 數(shù)據(jù)字典以“dic_表名”來命名字段命名 Pascal Ca

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論