![非常好的C#.NET-編程規(guī)范_第1頁](http://file4.renrendoc.com/view10/M00/3F/3E/wKhkGWWee3GAagAUAAHGNzK9g1I964.jpg)
![非常好的C#.NET-編程規(guī)范_第2頁](http://file4.renrendoc.com/view10/M00/3F/3E/wKhkGWWee3GAagAUAAHGNzK9g1I9642.jpg)
![非常好的C#.NET-編程規(guī)范_第3頁](http://file4.renrendoc.com/view10/M00/3F/3E/wKhkGWWee3GAagAUAAHGNzK9g1I9643.jpg)
![非常好的C#.NET-編程規(guī)范_第4頁](http://file4.renrendoc.com/view10/M00/3F/3E/wKhkGWWee3GAagAUAAHGNzK9g1I9644.jpg)
![非常好的C#.NET-編程規(guī)范_第5頁](http://file4.renrendoc.com/view10/M00/3F/3E/wKhkGWWee3GAagAUAAHGNzK9g1I9645.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
C#.NET編程規(guī)范 2 2 2.3注釋(Comment)規(guī)范 142.3.1模塊(類)注釋規(guī)范 14 1編寫目的統(tǒng)一性而2.1代碼格式令在代碼中垂直對齊左括號和右括號。{}if(x==0){}2令為了防止在閱讀代碼時不得不滾動源代碼編輯器,每行代碼或者注釋在1024*800的顯示頻率下不得超過一顯示屏示沒有后面的行是不完整的。令每一行上放置的語句避免超過一條。令在大多數(shù)運算符之前和之后使用空格,這樣做時不會改變代碼的意圖卻可以使代碼intj=i+k;而不應寫為intj=i+k;令將大的復雜代碼節(jié)分為較小的、易于理解的模塊。2.2命名指南使用下面的三種大寫標識符約定。Pascal大小寫將標識符的首字母和后面連接的每一個單詞的首字母都大寫??梢詫θ址蛘吒嘧諧amel大小寫標識符的首字母小寫,而每一個后面連接的單詞的首字母都大寫。例如:標識符中的所有字母都大寫。僅對于由兩個或者更少字母組成的標識符使用該約System.IOSystem.Web.UI可能還必須大寫標識符以維持與現(xiàn)有非托管符號方案的兼容性,在該方案中所有大3下表匯總了大寫規(guī)則,并提供了不同類型的標識符的示例。大小寫標識符大小寫類枚舉類型類枚舉類型枚舉值件異常類PascalPascalPascalPascal只讀的靜態(tài)字段接口法命名空間數(shù)性PascalPascalPascalPascalCamelPascal受保護的實例字Camel段公共實例字段PascalAppDomainErrorLevelFatalErrorValueChange注意總是以Exception后綴結(jié)尾。RedValue注意總是以I前綴開始。ToStringSystem.DrawingtypeNameBackColoredValue注意很少使用。屬性優(yōu)于使用受保護的實例字段。RedValue注意很少使用。屬性優(yōu)于使用公共實例字段。為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)分大小寫的使用的下列規(guī)則:必須徹底可以使用。不區(qū)分大小寫的語言無法區(qū)分同一上下文中僅大小寫不同的兩個名稱。因此,在創(chuàng)建的組件或者類中必須避免這種情況。言無法區(qū)分以下兩個命名空間聲明。令不要創(chuàng)建具有僅是大小寫有區(qū)別的參數(shù)名稱的函數(shù)。下面的示例是不正確的。和POINTp是不適當?shù)念愋兔Q,原因是它們僅是大小寫有區(qū)別。4intCOLOR是不適當?shù)膶傩悦Q,原因是它們僅是大小寫有區(qū)別。t令不要創(chuàng)建具有僅是大小寫有區(qū)別的方法名稱的類型。在下面的示例中,calculate和Calculate是不適當?shù)姆椒Q,原因是它們僅是大小寫有區(qū)別。為了避免混淆和保證跨語言交互操作,請遵循有關(guān)區(qū)縮寫的使用的下列規(guī)則:令不要將縮寫或者縮略形式用作標識符名稱的組成部份。例如,使用GetWindow,而不要使用GetWin。令不要使用計算機領(lǐng)域中未被普遍接受的縮寫。Interface的縮寫,用OLAP作為On-lineAnalyticalProcessing的縮寫。令在使用縮寫時,對于超過兩個字符長度的縮寫請使用Pascal大小寫或者Camel大小寫。例如,使用HtmlButton或者HTMLButton。但是,應當大寫僅有兩個字符的組成的縮寫請使用Camel大小寫,雖然這和單詞的標準縮寫相沖突。NET框架命名空間重復的類名稱。例如,不要將以AddHandlerAddressOfAliasAndAnsi5AsAssemblyAutoBaseBooleanByRefByteByValCallCaseCatchCBoolCByteCCharCDateCDecCDblCharCIntClassCLngCObjConstCShortCSngCStrCTypeDateDecimalDeclareDefaultDelegateDimDoDoubleEachElseElseIfEndEnumEraseErrorEventExitExternalSourceFalseFinalizeFinallyFloatForFriendFunctionGetGetTypeGotoHandlesImplementsseritsrInterfaceLetLibLikeLongLoopMeModModuleMustInheritMustOverrideMyBaseMyClassNamespaceNewNextNotNothingNotInheritableNotOverridableObjectOptionOptionalOverloadsOverridableOverridesParamArrayPreservePrivatePropertyProtectedPublicRaiseEventReadOnlyReDimRegionREMRemoveHandlerResumeReturnSelectShadowsSharedShortSingleStaticteptopStringStructureSyncLockThenThrowoTrueTryTypeOfUnicodeUntilvolatileWhenWhileWithWithEventsWriteOnlyXorextendsinstanceofpackagear2.2.5避免類型名稱混淆不同的編程語言使用不同的術(shù)語標識基本托管類型。類庫設(shè)計人員必須避免使用語言特定的術(shù)語。請遵循本節(jié)中描述的規(guī)則以避免類型名稱混淆。6到流中的類可以有以下方法。不要創(chuàng)建語言特定的方法名稱,如下面的示例所示。如果有必要為每一個基本數(shù)據(jù)類型創(chuàng)建惟一命名的方法,那末在這種極其罕見的情況下請使用通用類型名稱。下表列出基本數(shù)據(jù)類型名稱和它們的通用替換。C#類型名稱byteushortuintulongloatdoubleboolgobjectVisualBasic類型名稱SByteByteShortUInt16rUInt32LongUInt64SingleDoubleBooleanCharStringObjectJScript類型byteushortuintulongloatdoublebooleangobjectVisualC++類Ilasm.exe表示形型名稱式charint8unsignedcharunsignedint8unsignedunsigned__int64unsigned__int64loatdoubleboolwchar_tStringObjectunsignedint16intunsignedint32unsignedint64float32float64boolgobject通用類型名稱SByteByteUInt16UInt32UInt64SingleDoubleBooleanCharStringObject7CompanyName.TechnologyName[.Feature][.Design]Microsoft.MediaMicrosoft.Media.Design給命名空間名稱加之公司名稱或者其他知名商標的前綴可以避免兩個已經(jīng)發(fā)布的命名AutomationClasses的一個適當?shù)那熬Y。架構(gòu)的基礎(chǔ)。命名一個命名空間,該命名空間包含為具有.Design后綴的基命名空間提供設(shè)計時功能的類型。例如,System.Windows.Forms.Design命名空間包含用于設(shè)計基于System.Windows.Forms的應用程序的設(shè)計器和相關(guān)的類。類不依賴于System.UI.Design中的類。Microsoft.Office.PowerPoint中所示。如果您的商標使用非傳統(tǒng)的大小寫,請遵循您的商NeXT.WebObjects和ee.cummings闡釋了對于Pascal大小寫規(guī)則的適當背離。如果在語義上適當,使用復數(shù)命名空間名稱。例如,使用System.Collections而不是System.Collection。此規(guī)則的例外是商標名稱和縮寫。例如,使用System.IO而不是System.IOs。最后,請注意命名空間名稱不必非得與程序集名稱相似。例如,如果命名程序集MyCompany.MyTechnology.dll,它沒有必要非得包含MyCompany.MyTechnology命名空間。82.2.7類命名指南令使用名詞或者名詞短語命名類。令使用Pascal大小寫。令少用縮寫。令不要使用類型前綴,如在類名稱上對類使用C前綴。例如,使用類名稱FileStream,而不是CFileStream。令不要使用下劃線字符(_)。類名稱組成部份的整個單詞的第一個字母,這便是適當?shù)摹@?,類名稱IdentityStore是適當?shù)??;惖拿Q。例如,ApplicationException對于從名為Exception的類派生的類是適當?shù)拿Q,原因是ApplicationException是一種Exception。請在應用該規(guī)則時進行合理的判斷。例如,Button對于從Control派生的類是適當?shù)拿Q。盡管按鈕是一種控件,但是將Control作為類名稱的一部份將使名稱不必要地加長。下面是正確命名的類的示例。publicclassFileStreampublicclassButtonpublicclassString2.2.8類成員變量命名指南9令用名詞或者名詞短語,或者描述行為的形容詞命名接口。例如,接口名稱IComponent使用描述性名詞。接口名稱ICustomAttributeProvider使用名詞短語。名稱IPersistable使用形容詞。令使用Pascal大小寫。令少用縮寫。令給接口名稱加之字母I前綴,以指示該類型為接口。令在定義類/接口對(其中類是接口的標準實現(xiàn))時使用相似的名稱。兩個名稱的區(qū)別應該只是接口名稱上有字母I前綴。令不要使用下劃線字符(_)。以下是正確命名的接口的示例。publicinterfaceIServiceProviderpublicinterfaceIFormatable以下代碼示例闡釋如何定義IComponent接口及其標準實現(xiàn)Component類。publicinterfaceIComponent{}publicclassComponent:IComponent{//Implementationcodegoeshere.}應該總是將后綴Attribute添加到自定義屬性類。以下是正確命名的屬性類的示例。2.2.11枚舉類型命名指南枚舉(Enum)值類型從Enum類繼承。以下規(guī)則概述枚舉的命名指南:令對于Enum類型和值名稱使用Pascal大小寫。令少用縮寫。令不要在Enum類型名稱上使用Enum后綴。令對大多數(shù)Enum類型使用單數(shù)名稱,但是對作為位域的Enum類型使用復數(shù)名令總是將FlagsAttribute添加到位域Enum類型。指南:令使用名詞、名詞短語或者名詞的縮寫命名靜態(tài)字段。令使用Pascal大小寫。令對靜態(tài)字段名稱使用匈牙利語表示法前綴。令建議盡可能使用靜態(tài)屬性而不是公共靜態(tài)字段。類型可用于在大多數(shù)情況下確定它的含義。令對參數(shù)名稱使用Camel大小寫。參數(shù)的名稱。少用基于類型的參數(shù)名稱,僅在適合使用它們的地方使用它們。令不要給參數(shù)名稱加匈牙利語類型表示法的前綴。以下是正確命名的參數(shù)的示例。第11頁令使用動詞或者動詞短語命名方法。令使用Pascal大小寫。以下是正確命名的方法的實例。RemoveAll()GetCharArray()nvoke令使用名詞或者名詞短語命名屬性。令使用Pascal大小寫。令不要使用匈牙利語表示法。屬性,則屬性的類型同樣應該是Color。請參閱本主題中后面的示例。以下代碼示例闡釋正確的屬性命名。publicclassSampleClass{ColorBackColor{//CodeforGetandSetaccessorsgoeshere.}}以下代碼示例闡釋提供其名稱與類型相同的屬性。publicenumColor{//InsertcodeforEnumhere.}publicclassControl{publicColorColor{ertcode}}here.}here.}以下代碼示例不正確,原因是ColorpublicenumColor/InsertcodeblicclassControl{publicintColor屬性是Integer類型的。forEnumhere.}{rt}}codehere.}codehere.}在不正確的示例中,不可能引用Color枚舉的成員。Color.Xxx將被解釋為訪問一個類型)的值,然后再訪問該值的某個成員(該成員必須是System.Int32的實例成員)。令對事件處理程序名稱使用EventHandler后綴。令指定兩個名為sender和e的參數(shù)。sender參數(shù)表示引起事件的對象。sender參數(shù)始終是object類型的,即使在可以使用更為特定的類型時也如用適當而特定的事件類。令用EventArgs后綴命名事件參數(shù)類。令考慮用動詞命名事件。令使用動名詞(動詞的“ing”形式)創(chuàng)建表示事件前的概念的事件名稱,用過去式表示事件后。例如,可以取銷的Close事件應當具有Closing事件和Closed事件。不要使用BeforeXxx/AfterXxx命名模式。OnClose。方法(稱為OnXxx)。此方法只應具有事件參數(shù)e,因為發(fā)送方總是類型的實以下示例闡釋具有適當名稱和參數(shù)的事件處理程序。以下示例闡釋正確命名的事件參數(shù)類。publicclassMouseEventArgsEventArgs{publicMouseEventArgsintx,inty)publicintX{get{returnx;}}publicintY{get{returny;}}}2.3注釋(Comment)規(guī)范注釋規(guī)范包括:模塊(類)注釋規(guī)范、類的屬性、方法注釋規(guī)范、代碼2.3.1模塊(類)注釋規(guī)范ary中文名maryary者中文名mary2.3.2類屬性注釋規(guī)范<summary>///</summary>2.3.3方法注釋規(guī)范式編寫注釋<summary>/summary><paramname="<參數(shù)名稱>"><參數(shù)說明></param><returns>對方法返回值的說明,該說明必須明確說明返回的值代表什么含義>eturns2.3.4代碼間注釋規(guī)范>代碼中遇到語句塊時必須添加注釋(if,for,foreach,??),添加的注釋必須能夠說明此語句塊的作用和實現(xiàn)手段(所用算法等等)。作為一個軟件開辟者,在你的所有品中含有一份有關(guān)標準的文檔并不會自動地使你更加地有效率。要成功,你必須選擇變得更有效率,這意味著你必須將這些標準有3.1有效地使用這些標準以下的建議將匡助你更有效地使用本文所描述的C#編程標準和指南:1.理解標準。花些時間去理解為什么每一個標準和指南會使開辟效率提高。比如說,不要僅僅是因為指南中要求你才在一行僅聲明一個局部變量,而應該是因為你明白它能使你的代碼更易懂你才這樣做。遵守標準不應僅僅是當你有時間才做的事,而你應該向來遵守,因為你相信這是最好的程序設(shè)計方法。3.當你寫代碼時就應該遵守標準,而不應是一個事后的想法。加了注釋的代碼不僅在你寫程序時,而且在你寫完程序時,都更容易理解。在程序開辟階段和維護階段,一致性地命名成員函數(shù)和字段都使工作更加容易。在開辟和維護階段,整潔的代碼讓工作更加容易。概括起來說,遵守標準將提高你開辟過程中的生產(chǎn)率,并且使你的代碼更易維護(因此也使維護者的生產(chǎn)率提高了)。如果從一開始你就寫出整潔的代碼,你將在撰寫過程中受益。4.使它們成為你的質(zhì)量保證的過程。代碼檢查的一部份應該是確保源碼遵守你的機構(gòu)所采用的標準。將標準作為你訓練和指導開辟員更有3.2其它導向成功代碼的因素1.面向人而不是面向機器編程。你的開辟努力的主要目的應該是你的代碼易被其它人理解。如果沒人能理解它,它就一點兒優(yōu)點也沒有。使用命名約定。注釋代碼。給代碼分段。2.首先設(shè)計,然后編寫代碼。你是否曾經(jīng)遇到過這樣的情況:一些你的程序所倚靠的代碼需要修改?可能是要傳一個新的參數(shù)給一個成員函數(shù),或者是需要將一個類拆成幾個類。為了確信你的代碼與被重新設(shè)置修改的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度國際教育培訓合同規(guī)范
- 二零二五年度私人借款居間服務風險評估與管理合同
- 2025版高效農(nóng)場租賃合同標準范本解讀
- 借款合同范本 個人簡單
- 2024年氟硅橡膠項目資金需求報告
- m3227G-5-ppp-5-Am-生命科學試劑-MCE-8298
- 二零二五年度公司并購法律顧問聘請協(xié)議
- 2025年度淘寶品牌入駐服務協(xié)議
- 二零二五年度汽修店技術(shù)支持與門店經(jīng)營權(quán)轉(zhuǎn)讓合同
- 二零二五年度生態(tài)保護項目農(nóng)民工雇傭管理協(xié)議
- 【七上HK數(shù)學】安徽省蚌埠市固鎮(zhèn)縣2024-2025學年七年級上學期1月期末試卷數(shù)學試題
- 電信網(wǎng)和互聯(lián)網(wǎng)圖像篡改檢測技術(shù)要求與測試方法
- 2025屆江蘇省南京市鹽城市高三一??荚囌Z文試題 課件
- 《水稻生長進程》課件
- 2024版企業(yè)高管職務任命書3篇
- 青少年鑄牢中華民族共同體意識路徑研究
- 江蘇省南京市2024年中考英語試題(含解析)
- 學校農(nóng)業(yè)教育體驗項目方案
- 水利工程施工監(jiān)理規(guī)范(SL288-2014)用表填表說明及示例
- 部編版2023-2024學年六年級上冊語文期末測試試卷(含答案)
- 旅行社新人培訓
評論
0/150
提交評論