c#編程典范榜樣和數(shù)據(jù)庫命名典范榜樣_第1頁
c#編程典范榜樣和數(shù)據(jù)庫命名典范榜樣_第2頁
c#編程典范榜樣和數(shù)據(jù)庫命名典范榜樣_第3頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編程規(guī)范代碼編寫1. 對象的認(rèn)識 =模糊認(rèn)識 +清楚認(rèn)識。當(dāng)前類解決的是清楚認(rèn)識部分,模糊認(rèn)識 由將來派生類完成。2. 方法的輸入、輸出要有嚴(yán)格的定義。要做到功能明確,不越權(quán)。3. 除非在萬不得以的情況下,在類中不能定義公用字段,字段的引用盡量要采用屬性 形式。4. 不可修改的字段應(yīng)用 Con st來修飾,并說明類型。5. 對你所寫的每一個(gè)文件都加上相關(guān)的標(biāo)準(zhǔn)化注釋,一般應(yīng)包括:文件的作用、 作者及時(shí)間等;例如:/作者:/時(shí)間:/作用:/6. 為你定義的類寫詳細(xì)的注釋,包括作者、時(shí)間、修改信息、基本的算法等。類 實(shí)現(xiàn)功能的注釋方法如下:/ <summary>/ class 的摘要說

2、明。/ </summary>7. 為你定義的每一個(gè)方法、字段、屬性寫詳細(xì)的注釋,包括輸入輸出參數(shù)說明、 返回值說明、方法功能說明;如:/ <summary>/該方法的摘要信息/ </summary>/ vparam name="sql">sql 參數(shù)的說明 </param>/ <returns> 返回值的說明 </returns> public int ModifyData( string sql) 8. 寫注釋的時(shí)候語義要明確,注釋的長度最好不要超過一句話9. 所有標(biāo)識符(類名、方法名、字段名、

3、屬性名等)均要求意義明確易于理解, 不用關(guān)鍵字作為標(biāo)識符,名字中避免使用易混淆的數(shù)字10. 避免在代碼中直接使用數(shù)字等不確定意義的詞,盡量使用有意義的串值代替; 如:const static PI = 3.141592611. 盡量不用或少用goto語句,不要在同一行中寫多個(gè)語句,利用添加空格來清晰地表 示語句的成分12. 不要寫太長的if () .,for().,While(.)或者太多的嵌套;對上述較長者在范圍結(jié)束處加注釋。如/for循環(huán)結(jié)束13. 可以在程序中添加一些空格、空行和縮進(jìn)等技巧,幫助人們從視覺上看清程序的結(jié)構(gòu),在使用縮進(jìn)的時(shí)候應(yīng)使用“Tab”鍵,而不是使用空格鍵14. 在向工

4、程中添加新頁面時(shí),.net會自動幫你生成一段代碼,其中包括Onlnit(Eventargs e) 和 InitializeComponent()方法,在頁面中添加事件的時(shí)候會自動在InitializeComponent ()方法安裝事件;但是在此過程中會 出現(xiàn)一些問題,因此不允許使用OnInit ()方法,直接把這段話刪除;為 此,我們因在代碼中添加Pagenit ()方法以替代Onlnit ()方法,Page_Init 事件可以通過頁面構(gòu)造函數(shù)安裝,再由Page_I nit調(diào)用InitializeComponent()方法15. 為了便于規(guī)范,所有的頁面都必需從kaiyuan.PageBas

5、e派生,而不是直接從System.Web.UI.Page 派生16. 在 Page_Load方法開始處添加 PageData data = CheckPage( pageID )語 句,其中pageID為當(dāng)前操作頁面的id,具體值見PageID類命名指南總的來說除了參數(shù)(包括方法內(nèi)部定義的臨時(shí)變量)和private作用域的字段采用 Camel大小寫的命名規(guī)則之外,其他的都采用Pascal大小寫命名規(guī)則;如果字段是一個(gè)控件的實(shí)例,必須在后面跟上控件名;不要在字段前加g_或s_或口_等前綴;con st字段一般全用大寫;例如一個(gè)有關(guān)文件名的各種命名:常量:private con st stri n

6、g FILE_NAME = "reg.aspx"字段:private string fileName;字段:public string FileName;控件:protected System.Web.UI.WebControls.TextBox FileNameTextBox; 參數(shù):string fileName;有關(guān)具體的命名詳細(xì)見以下各部分1 大寫樣式使用下面的三種大寫標(biāo)識符約定1. Pascal大小寫可以對三字符或更多字符的將標(biāo)識符的首字母和后面連接的每個(gè)單詞的首字母都大寫。 標(biāo)識符使用Pascal大小寫。例如:Back Color2. Camel大小寫標(biāo)識符的首

7、字母小寫,而每個(gè)后面連接的單詞的首字母都大寫。例如:back Color3. 大寫標(biāo)識符中的所有字母都大寫。僅對于由兩個(gè)或者更少字母組成的標(biāo)識符使用該約定。例如:System. 10System.Web. UI可能還必須大寫標(biāo)識符以維持與現(xiàn)有非托管符號方案的兼容性,在該方案中所有大寫字母經(jīng)常用于枚舉和常數(shù)值。一般情況下,在使用它們的程序集之外這些字符應(yīng)當(dāng)是不可 見的。F表匯總了大寫規(guī)則,并提供了不同類型的標(biāo)識符的示例。標(biāo)識符類枚舉類型 枚舉值 事件 異常類大小寫PascalPascalPascalPascalPascal只讀的靜態(tài)字段 Pascal 接口Pascal方法Pascal命名空間Pa

8、scal參數(shù)Camel屬性Pascal受保護(hù)的實(shí)例字Camel 段公共實(shí)例字段Pascal示例AppDomainErrorLevelFatalErrorValueCha ngeWebExcepti on注意總是以 Exception 后綴結(jié)尾。RedValueIDisposable注意總是以I前綴開始。ToStri ngSystem.Drawi ngtypeNameBackColorredValue注意很少使用。屬性優(yōu)于使用受保護(hù)的實(shí)例字段。RedValue注意很少使用。屬性優(yōu)于使用公共實(shí)例字段。2 區(qū)分大小寫為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)分大小寫的使用的下列規(guī)則:1. 不要使

9、用要求區(qū)分大小寫的名稱。對于區(qū)分大小寫和不區(qū)分大小寫的語言,組件都必須完全可以使用。不區(qū)分大小寫的語言無法區(qū)分同一上下文中僅大小寫不同的兩 個(gè)名稱。因此,在創(chuàng)建的組件或類中必須避免這種情況。2. 不要創(chuàng)建僅是名稱大小寫有區(qū)別的兩個(gè)命名空間。例如,不區(qū)分大小寫的語言無法區(qū)分以下兩個(gè)命名空間聲明。n amespace ee.cum mingsn amespace Ee.Cummi ngs3. 不要創(chuàng)建具有僅是大小寫有區(qū)別的參數(shù)名稱的函數(shù)。下面的示例是不正確的void MyFunction( string a, string A)4. 不要創(chuàng)建具有僅是大小寫有區(qū)別的類型名稱的命名空間。在下面的示例中

10、,Poi nt p和POINT p是不適當(dāng)?shù)念愋兔Q,原因是它們僅在大小寫方面有區(qū)別System.Wi ndows.Forms.Poi nt pSystem.Wi ndows.Forms.POINT p5. 不要創(chuàng)建具有僅是大小寫有區(qū)別的屬性名稱的類型。在下面的示例中,int Color和int COLOR是不適當(dāng)?shù)膶傩悦Q,原因是它們僅在大小寫方面有區(qū)別。int Color get, seti nt COLOR et, set6. 不要創(chuàng)建具有僅是大小寫有區(qū)別的方法名稱的類型。在下面的示例中,calculate和Calculate是不適當(dāng)?shù)姆椒Q,原因是它們僅在大小寫方面有區(qū)別。void

11、calculate()void Calculate()3 縮寫為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)縮寫的使用的下列規(guī)則:1. 不要將縮寫或縮略形式用作標(biāo)識符名稱的組成部分。例如,使用GetWindow,而不要使用GetWin。2. 不要使用計(jì)算機(jī)領(lǐng)域中未被普遍接受的縮寫。3. 在適當(dāng)?shù)臅r(shí)候,使用眾所周知的縮寫替換冗長的詞組名稱。例如,用UI作為UserIn terface 的縮寫,用 OLAP 作為 On-li ne An alytical Processi ng的縮寫。4. 在使用縮寫時(shí),對于超過兩個(gè)字符長度的縮寫,請使用Pascal大小寫或Camel大小寫。例如,使用 HtmIB

12、utton 或htmIButton 。但是,應(yīng)當(dāng) 大寫僅有兩個(gè)字符的 縮寫,如,System.lO,而不是System。5. 不要在標(biāo)識符或參數(shù)名稱中使用縮寫。如果必須使用縮寫,對于由多于兩個(gè)字符所組成的縮寫請使用 Camel大小寫,雖然這和單詞的標(biāo)準(zhǔn)縮寫相沖突。4 措詞避免使用與常用的.NET Framework命名空間重復(fù)的類名稱;避免使用和關(guān)鍵字沖突的標(biāo)識符。5 避免類型名稱混淆使用描述類型的含義的名稱,而不是描述類型的名稱。義含義,那么在這種罕見的情況下請使用一般性名稱。中的類可以有以下方法void Write( double value );void Write( float val

13、ue);void Write( long value);void Write( int value);void Write( short value);不要創(chuàng)建語言特定的方法名稱,如下面的示例所示void Write( double doubleValue);void Write( float floatValue);void Write( long IongValue);void Write( int intValue);void Write( short shortValue);如果有必要為每個(gè)基本數(shù)據(jù)類型創(chuàng)建唯一命名的方法,如果參數(shù)除了其類型之外沒有任何語 例如,支持將各種數(shù)據(jù)類型寫入到

14、流C#類型名VisualBasic JScript類 型 Visual C+類Ilasm.exe 表示形通用類型名稱類型名稱名稱型名稱式稱SbyteSbyteSBytecharin t8SByteByteByteByteun sig ned charun sig ned int8ByteShortShortShortshortin t16In t16UshortUln t16Ushortun sig ned shortun sig ned in t16UI nt16IntIn tegerIntintin t32In t32UintUI nt32Ui ntun sig ned intun sig

15、 ned in t32UI nt32LongLo ngLo ng_in t64in t64In t64Ulo ngUln t64Ulo ngun sig ned_in t64un sig ned in t64Uln t64FloatSin gleFloatfloatfloat32Sin gle那么在這種極為罕見的情況下請使用通用類型名稱。下表列出基本數(shù)據(jù)類型名稱和它們的通用替換。DoubleDoubleDoubledoublefloat64DoubleBoolBoolea nboolea nboolboolBoolea nCharCharCharwchar_tcharCharStri ngSt

16、ri ngStri ngStri ngstri ngStri ngObjectObjectObjectObjectobjectObject例如,支持將從流讀取各種數(shù)據(jù)類型的類可以有以下方法。double ReadDouble();float ReadSi ngle();lo ng Readl nt64();int Readlnt32();short Readlnt16();上面的示例優(yōu)先于下面的語言特定的替代方法。double ReadDouble();float ReadFloat();long ReadL on g();int ReadInt();short ReadShort();6 類

17、命名指南以下規(guī)則概述命名類的指南:1. 使用名詞或名詞短語命名類。2. 使用 Pascal大小寫。3. 少用縮寫。4. 不要使用類型前綴,如在類名稱上對類使用C前綴。例如,使用類名稱 FileStream,而不是 CFileStream 。5. 不要使用下劃線字符(_)。6. 有時(shí)候需要提供以字母I開始的類名稱,雖然該類不是接口。只要I是作為類名稱組成部分的整個(gè)單詞的第一個(gè)字母,這便是適當(dāng)?shù)?。例如,類名稱IdentityStore就是適當(dāng)?shù)摹?. 在適當(dāng)?shù)牡胤?,使用?fù)合單詞命名派生的類。派生類名稱的第二個(gè)部分應(yīng)當(dāng)是基類的名稱。例如,Applicati on Exception對于從名為Exce

18、ption 的類派生的類是適當(dāng)?shù)拿Q,原因是 ApplicationException 是一種Exception。請?jiān)趹?yīng)用該規(guī)則時(shí) 進(jìn)行合理的判斷。例如,Button對于從Control派生的類是適當(dāng)?shù)拿Q。盡管按鈕是一種控件,但是將 Con trol作為類名稱的一部分將使名稱不必要地加長。下面是正確命名的類的示例public class FileStreampublic class Butt onpublic class String7 方法命名指南以下規(guī)則概述方法的命名指南:1. 使用動詞或動詞短語命名方法。2. 使用 Pascal大小寫。以下是正確命名的方法的實(shí)例RemoveAII()G

19、etCharArray()Inv oke()8 字段使用指南以下規(guī)則概述字段的使用指南:1. 不要使用是public 或protected的實(shí)例字段。如果避免將字段直接公開給開發(fā)人員,可以更輕松地對類進(jìn)行版本控制,原因是在維護(hù)二進(jìn)制兼容性時(shí)字段不能被更改為屬性??紤]為字段提供 get和set屬性訪問器,而不是使它們成為公共的。 get和set屬性訪問器中可執(zhí)行代碼的存在使得可以進(jìn)行后續(xù)改進(jìn),如在使用屬 性或者得到屬性更改通知時(shí)根據(jù)需要創(chuàng)建對象。2. 使用const關(guān)鍵字聲明不會更改的常量字段。語言編譯器直接將const字段的值保存在調(diào)用代碼中。常量字段的名稱通常全部大寫,例如:private

20、constStri ngTRACING_TRACEFILE_DEFAULT="Applicatio nTrace.txt"3. 對預(yù)定義對象實(shí)例使用公共靜態(tài)只讀字段。如果存在對象的預(yù)定義實(shí)例,則將它們聲明為對象本身的公共靜態(tài)只讀字段。使用Pascal大小寫,原因是字段是公共的。下面的代碼示例闡釋公共靜態(tài)只讀字段的正確使用。public staticreadonly Color Red =newColor( 0x0000FF);public staticreadonly Color Green =:newColor( OxOOFFOQ;4. 拼寫出字段名稱中使用的所有單詞。僅

21、在開發(fā)人員一般都能理解時(shí)使用縮寫。5. 不要對字段名使用匈牙利語表示法。好的名稱描述語義,而非類型。6. 不要對字段名或靜態(tài)字段名應(yīng)用前綴。具體說來,不要對字段名稱應(yīng)用前綴來區(qū)分靜態(tài)和非靜態(tài)字段。例如,應(yīng)用g_或s_前綴是不正確的9 屬性命名指南以下規(guī)則概述屬性的命名指南:1. 使用名詞或名詞短語命名屬性。2. 使用 Pascal大小寫。3. 不要使用匈牙利語表示法。4. 考慮用與屬性的基礎(chǔ)類型相同的名稱創(chuàng)建屬性。10接口命名指南以下規(guī)則概述接口的命名指南:1. 用名詞或名詞短語,或者描述行為的形容詞命名接口。例如,接口名稱IComponent使用描述性名詞。接口名稱ICustomAttrib

22、uteProvider使用名詞短語。名稱IPersistable使用形容詞。2. 使用 Pascal大小寫。3. 少用縮寫。4. 給接口名稱加上字母I前綴,以指示該類型為接口。5. 在定義類/接口對(其中類是接口的標(biāo)準(zhǔn)實(shí)現(xiàn))時(shí)使用相似的名稱。兩個(gè)名稱的區(qū)別應(yīng)該只是接口名稱上有字母I前綴。6. 不要使用下劃線字符(_)。11事件命名指南以下規(guī)則概述事件的命名指南:1. 使用 Pascal大小寫。2. 不要使用匈牙利語表示法。3. 對事件處理程序名稱使用Eve ntHa ndler 后綴。4. 指定兩個(gè)名為 sender和e的參數(shù)。sender參數(shù)表示引發(fā)事件的對象。sender參數(shù)始終是obje

23、ct類型的,即使在可以使用更為特定的類型時(shí)也如此。與事件相關(guān) 聯(lián)的狀態(tài)封裝在名為e的事件類的實(shí)例中。對e參數(shù)類型使用適當(dāng)而特定的事件類。5. 用Even tArgs 后綴命名事件參數(shù)類。6. 考慮用動詞命名事件。例如,命名正確的事件名稱包括Clicked、Painting 和DroppedDowe7. 使用動名詞(動詞的“ ing ”形式)創(chuàng)建表示事件前的概念的事件名稱,用過去式 表示事件后。例如,可以取消的Close事件應(yīng)當(dāng)具有 Closing 事件和Closed事件。不要使用 BeforeXxx/AfterXxx命名模式。Close,而不要使用8. 不要在類型的事件聲明上使用前綴或者后綴。例如,使用On Close。9. 通常情況下,對于可以在派生類中重寫的事件,應(yīng)在類型上提供一個(gè)受保護(hù)的方法(稱為OnXxx)。此方法只應(yīng)具有事件參數(shù)e,因?yàn)榘l(fā)送方總是類型的實(shí)例。12枚舉類型命名指南枚舉(Enun)值類型從Enum類繼承。以下規(guī)則概述枚舉的命名指南:* 對于Enum類型和值名稱使用Pascal大小寫。*少用縮寫。*不要在Enum類型

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論