軟件編碼規(guī)范_第1頁
軟件編碼規(guī)范_第2頁
軟件編碼規(guī)范_第3頁
軟件編碼規(guī)范_第4頁
軟件編碼規(guī)范_第5頁
免費(fèi)預(yù)覽已結(jié)束,剩余2頁可下載查看

下載本文檔

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

文檔簡介

1、C#編碼規(guī)范文檔版本V0.011.目的規(guī)范C#代碼的書寫,提高代碼的可讀性,使開發(fā)人員在代碼上更好的協(xié)作,減少新開發(fā)成員熟悉現(xiàn)有代碼的時間,間接提高軟件代碼的可維護(hù)性。2. 命名規(guī)范1)命名約定標(biāo)識符構(gòu)成:所有標(biāo)識符應(yīng)由一個或多個完整的英文單詞構(gòu)成,除通用的縮略詞如IO、Http、id等或是項(xiàng)目特定的專用縮略詞如項(xiàng)目名稱的縮寫等,不應(yīng)使用未被普遍接受的單詞縮略形式。可以適當(dāng)使用下劃線"2)大小寫約定Pascal:組成標(biāo)識符的所有單詞白首字母大寫,如Get、BackColor。Camel:組成標(biāo)識符的第一個單詞全小寫,后續(xù)單詞首字母大小,如get、backColor。全大寫:組成標(biāo)識符

2、的所有單詞的所有字母全部大寫??s略詞:不要使用半個單詞白縮寫形式,如GetWin,而應(yīng)使用GetWindow。不要使用不被普遍認(rèn)可的首字母縮寫。在適當(dāng)情況下,使用通用的首字母縮寫,如UI表示Userinterface,而OLAP表示On-lineAnalyticalProcessing。兩個字母的縮寫單獨(dú)使用時可以適當(dāng)使用全大寫書寫風(fēng)格替代Pascal風(fēng)格。不要在標(biāo)識符或參數(shù)名中使用首字母縮寫,必須使用時,應(yīng)使用Camel形式。Id不是首字母縮寫,不應(yīng)使用全大寫方式。3) C#命名規(guī)范以.Net公共語言規(guī)范(CLSCompliant)為基礎(chǔ),規(guī)定標(biāo)識符的命名規(guī)則。標(biāo)識符類別大小寫約定示例命名空

3、間PascalSystem;System.Web;委托、枚舉、結(jié)構(gòu)、Pascal(對于特殊類型,應(yīng)使Page;UserControl;DateTime;類名用特定后綴,參見附錄I)DateTimeKind;EventHandler;接口Pascal,并帶有前綴IDisposable;IHttpHandler;枚舉成員PascalError;FatalError;屬性、方法、事件PascalBackColor;GetBackColor;BackColorChanged;方法、屬性參數(shù)聲明CamelbackColor;name;userid泛型參數(shù)聲明Pascal,T或帶后前綴TT;TResult

4、;TKey;TValue;私有字段Camel,推薦使用卜劃線前綴,以區(qū)別于局部變量。對于控件變量,應(yīng)使用對應(yīng)的控件類型縮寫。對于靜態(tài)私有字段,使用g_前綴。與屬性對應(yīng)的私有字段使用屬性名前加下劃線。_backColor;_userId;txtUsername;txtPassword;s_instance;_UserName;保護(hù)字段禁止使用。私有常量Pascal(包括私有靜態(tài)只讀字段)。公共常量Pascal(包括公共靜態(tài)只讀字段)。int.Max公共字段禁止使用。局部變量Camel。4)代碼書寫風(fēng)格使用VisualStudio默認(rèn)書寫風(fēng)格,在簽入代碼之前,應(yīng)使用Ctrl+K,Ctrl+D快捷鍵

5、格式化代碼,保證源碼管理服務(wù)器對代碼差異的正確評估。5)編碼要求1 .單個類、方法的代碼行數(shù)不應(yīng)過長,否則應(yīng)考慮進(jìn)行拆分。2 .局部變量引用Disposable類實(shí)例的,必須使用using語法進(jìn)行Dispose操作。或在特殊情況下,使用try.finally進(jìn)行手動Dispose操作。3 .類的實(shí)例字段包含Disposable類型的,類必須也要實(shí)現(xiàn)IDisposable接口。4 .屬性的get訪問器不應(yīng)有任何副作用。5 .如果枚舉的值可以組合使用,應(yīng)對其標(biāo)注FlagsAttribute特性。這種情況下枚舉類型名稱建議使用復(fù)數(shù)。6 .枚舉應(yīng)該包含0值,以對應(yīng)未初始化狀態(tài)的值。7 .類型之間的耦合

6、應(yīng)盡量簡單。如果A使用B,B使用C,則A應(yīng)盡量不直接使用Co如A中某方法的代碼:this.BInstance.GetC().DoSomething();應(yīng)該盡量改為:this.BInstance.MakCDoSomthing();8 .謹(jǐn)慎區(qū)分返回值與異常。對于錯誤使用異常機(jī)制報告而不是返回值。9 .盡量catch具體的異常類型,而不是Exception類型。10 .處理異常時需重新拋出該異常時,使用throw;而不是throwex;后者會重置堆棧跟蹤信息。11 .在finally塊中釋放資源。6)關(guān)于自動生成的代碼7)注釋所有c#代碼文件必須包含文件頭注釋,格式如下:=/ProductNam

7、e/ModuleName/=/版權(quán)聲明/=/內(nèi)容描述/=/創(chuàng)建人/創(chuàng)建日期/最后修改人/最后修改日期/=/備注/=所有類、結(jié)構(gòu)、枚舉、委托、方法、屬性、字段都必須書寫文檔注釋。復(fù)雜的代碼段應(yīng)有必要的解釋性注釋。文檔注釋中所有參數(shù)必需說明用途、用法。文檔注釋中,所有方法、屬性訪問器,如可能產(chǎn)生異常,應(yīng)注明異常類型及前提。如果注釋無法清楚的表明代碼的用途,添加簡單的example注釋。屬性注釋請使用以下語法結(jié)構(gòu):獲取或設(shè)置.。獲取.。8)關(guān)于自動生成的代碼自動生成的代碼不應(yīng)進(jìn)行任何手動修改。3. 設(shè)計(jì)規(guī)范1)分層設(shè)計(jì)采用分層設(shè)計(jì),表現(xiàn)層、業(yè)務(wù)邏輯層、數(shù)據(jù)訪問層是必須的。2)面向接口編程面向接口編程

8、,而不是面向類編程。3)測試友好所編寫的代碼必須容易測試。4)耦合簡單與某一個類有直接關(guān)系的其它類的數(shù)量應(yīng)盡量少。類與類之間盡量用接口進(jìn)行耦合。附錄I特殊類名后綴基類型/接口后綴System.AttributeAttributeSystem.EventArgsEventArgsSystem.ExceptionExceptionSystem.Collections.ICollectionCollectionSystem.Collections.IDictionaryDictionarySystem.Collections.IEnumerableCollectionSystem.Collectio

9、ns.QueueCollection或QueueSystem.Collections.StackCollection或StackSystem.Collections.Generic.ICollection<T>(T)CollectionSystem.Collections.Generic.IDictionary<Tkey,DictionaryTValue>(TKey,TValue)System.Data.DataSetDataSetSystem.Data.DataTableCollection或DataTableSystem.IO.StreamStreamSystem.

10、Security.IPermissionPermissionSystem.Security.Policy.IMembershipConditionCondition事件處理程序委托。EventHandler業(yè)務(wù)實(shí)體類Info后綴。業(yè)務(wù)邏輯類儂口Manager后綴。數(shù)據(jù)訪問類腰口DataProvider后綴。對于事件處理程序委托,使用兩個參數(shù)無返回值的形式,其中第一個參數(shù)為System.Object類型,表示事件源,第二個參數(shù)為System.EventArgs類型的派生類,表示事件參數(shù),如果可能,使用System.EventHandler<T>泛型。附錄I首選詞條過時的詞條首選詞條ArentAreNotCancelledCanceledCantCannotComPlusEnterpriseServicesCouldntCouldNotDidntDidNotDoesntDoesNotDontDoNotFlag或Flags無替代詞條。不要使用。HadntHadNotHasn'tHasNotHaventH

溫馨提示

  • 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

提交評論