程序員開發(fā)手冊(cè)及高考語(yǔ)文試卷_第1頁(yè)
程序員開發(fā)手冊(cè)及高考語(yǔ)文試卷_第2頁(yè)
程序員開發(fā)手冊(cè)及高考語(yǔ)文試卷_第3頁(yè)
程序員開發(fā)手冊(cè)及高考語(yǔ)文試卷_第4頁(yè)
程序員開發(fā)手冊(cè)及高考語(yǔ)文試卷_第5頁(yè)
已閱讀5頁(yè),還剩64頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

《安全生產(chǎn)信息化管理系統(tǒng)》程序員開發(fā)手冊(cè)——————————————————————————————————————————————《安全生產(chǎn)信息化管理系統(tǒng)》程序員開發(fā)手冊(cè)1概述 目的1、方便代碼的交流和維護(hù)。2、不影響編碼的效率,不與群眾習(xí)慣沖突。3、使代碼更美觀、閱讀更方便。4、使代碼的邏輯更清晰、更易于理解。1.2范圍本手冊(cè)適用于開發(fā)部全體人員,作用于軟件項(xiàng)目開發(fā)的代碼編寫階段和后期維護(hù)階段。 警示通過(guò)自動(dòng)檢查【】或人工檢查【部門主管或相關(guān)負(fù)責(zé)人】不符合編碼標(biāo)準(zhǔn)的,必須在限期【部門主管或相關(guān)負(fù)責(zé)人指定時(shí)間】?jī)?nèi)修正,逾期視為工作過(guò)失,部門主管或相關(guān)負(fù)責(zé)人視具體情況做出相關(guān)處理。 術(shù)語(yǔ)定義1、匈牙利命名法【禁用】標(biāo)識(shí)符的名字以一個(gè)或者多個(gè)小寫字母開頭作為前綴;前綴之后的是首字母大寫的一個(gè)單詞或多個(gè)單詞組合,該單詞要指明變量的用途。例如:aUserId數(shù)組(Array)定義以小寫字母a開頭2、帕斯卡(pascal)命名法【推薦】將標(biāo)識(shí)符的首字母和后面連接的每個(gè)單詞的首字母都大寫??梢詫?duì)三字符或更多字符的標(biāo)識(shí)符使用Pascal大小寫。例如:UserId3、駱駝(Camel)命名法【推薦】標(biāo)識(shí)符的首字母小寫,而每個(gè)后面連接的單詞的首字母都大寫。例如:userId2代碼格式 列寬1、為了防止在閱讀代碼時(shí)不得不滾動(dòng)源代碼編輯器,每行代碼或注釋在一般顯示頻率下不得超過(guò)一顯示屏,代碼列寬控制在110字符左右。2、系統(tǒng)中部分代碼可以不遵循此原則。如:VIWFormItemDetail[]dv=(VIWFormItemDetail[])MHelper.SQLCommand.query(sql,VIWFormItemDetail.TName,sqlParams);3、SQL語(yǔ)句拼接、字符串拼接、函數(shù)參數(shù)名過(guò)長(zhǎng)、判斷語(yǔ)句過(guò)長(zhǎng)的代碼要遵循以上原則。 換行1、當(dāng)表達(dá)式超出或即將超出規(guī)定的列寬,一行被分為幾行時(shí),通過(guò)將串聯(lián)運(yùn)算符放在每一行的末尾而不是開頭,清楚地表示沒有后面的行是不完整的。StringquerySql=“SELECTProjectId”+“,ProjectTitle”+“FROMProject”2、每一行上放置的語(yǔ)句避免超過(guò)一條。3、當(dāng)表達(dá)式超出或即將超出規(guī)定的列寬,遵循以下規(guī)則進(jìn)行換行(1)在逗號(hào)前換行。(2)在操作符前換行。(3)規(guī)則1優(yōu)先于規(guī)則2。例如:StringBuilderquerySql=newStringBuilder();ASPK");querySql.Append(",a.ProjectTitle");querySql.Append(",a.ProjectDisplayCode");querySql.Append(",a.IsbnCodeASISBNCode");querySql.Append("FROMProjecta"); 當(dāng)以上規(guī)則會(huì)導(dǎo)致代碼混亂的時(shí)候自己采取更靈活的換行規(guī)則。 縮進(jìn)縮進(jìn)應(yīng)該是每行一個(gè)Tab(4個(gè)空格),不要在代碼中使用Tab字符。設(shè)置:工具->選項(xiàng)->文本編輯器->C#->制表符->插入空格 空行空行是為了將邏輯上相關(guān)聯(lián)的代碼分塊,以便提高代碼的可閱讀性。在以下情況下使用兩個(gè)空行1、接口和類的定義之間。2、枚舉和類的定義之間。3、類與類的定義之間。在以下情況下使用一個(gè)空行1、方法與方法、屬性與屬性之間。2、方法中變量聲明與語(yǔ)句之間。3、方法與方法之間。4、方法中不同的邏輯塊之間。5、方法中的返回語(yǔ)句與其他的語(yǔ)句之間。6、屬性與方法、屬性與字段、方法與字段之間。7、注釋與它注釋的語(yǔ)句間不空行,但與其他的語(yǔ)句間空一行。 空格在以下情況中要使用到空格1、關(guān)鍵字和左括符“(”應(yīng)該用空格隔開。如while(true)注意;在方法名和左括符“(”之間不要使用空格,這樣有助于識(shí)別代碼中的方法調(diào)用與關(guān)鍵字。多個(gè)參數(shù)用逗號(hào)隔開,每個(gè)逗號(hào)后都應(yīng)加一個(gè)空格。2、除了.之外,所有的二元操作符都應(yīng)用空格與它們的操作數(shù)隔開。一元操作符、++及--與操作數(shù)間不需要空格。如a+=c+d;a=(a+b)/(c*d);while(d++=s++){n++;}PrintSize(“sizeis“+size+“\n”);3、語(yǔ)句中的表達(dá)式之間用空格隔開。如for(expr1;expr2;expr3)4、以下寫法是不允許的:intj=i+k;括號(hào)-()1、左括號(hào)“(”不要緊靠關(guān)鍵字,中間用一個(gè)空格隔開。2、左括號(hào)“(”與方法名之間不要添加任何空格。3、沒有必要的話不要在返回語(yǔ)句中使用()。如if(condition)Array.Remove(1)return1花括號(hào)-{}1、左花括號(hào)“{”放于關(guān)鍵字或方法名的下一行并與之對(duì)齊。如if(condition){}publicintAdd(intx,inty){}2、左花括號(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;}右花括號(hào)“}”后建議加一個(gè)注釋以便于方便的找到與之相應(yīng)的{。如while(1){if(valid){}//ifvalidelse{}//notvalid}//endforever以下情況是不允許的:if(x==0){Response.Write("用戶編號(hào)必須輸入!");}或者:if(x==0){Response.Write("用戶編號(hào)必須輸入!");}2.8分解將大的復(fù)雜代碼節(jié)分為較小的、易于理解的模塊。2.9SQL 1、編寫SQL語(yǔ)句時(shí),對(duì)于關(guān)鍵字或保留字使用全部大寫,對(duì)于數(shù)據(jù)庫(kù)元素(如表、列和視圖等命名)使用帕斯卡命名法命名。如:SELECTUserIdASEmIdFROMUserSELECTUserIdASEmIdFROMUserASemSELECTUserIdASEmIdFROMUserASEM等允許使用; 2、將每個(gè)主要的SQL子句放在不同的行上,這樣更容易閱讀和編輯語(yǔ)句。例如:SELECTFirstName,LastNameFROMCustomersWHEREState='WA';3、不要從數(shù)據(jù)表中調(diào)用頁(yè)面或程序不需要的字段;2.10引用 1、對(duì)于程序中字段名稱的引用要通過(guò)對(duì)應(yīng)的屬性調(diào)用實(shí)現(xiàn)。如:IntuserId=(int)Dv[0][“UserId”];是不允許的;IntuserId=(int)Dv[0][User.x.UserId.ColumnName];是允許的;stringbookPriceName=Book.x.BookPrice.ColumnName;decimal?bookPrice=null;if(dr[bookPriceName]!=DBNull.Value){bookPrice=(decimal)dr[bookPriceName];} 是允許的;3程序注釋 注釋概述1、修改代碼時(shí),總是使代碼周圍的注釋保持最新。2、在每個(gè)例程的開始,提供標(biāo)準(zhǔn)的注釋樣本以指例如程的用途、假設(shè)和限制很有幫助。注釋樣本應(yīng)該是解釋它為什么存在和可以做什么的簡(jiǎn)短介紹。3、避免在代碼行的末尾添加注釋;行尾注釋使代碼更難閱讀。不過(guò)在批注變量聲明時(shí),行尾注釋是適宜的;在這種情況下,將所有行尾注釋在公共制表位處對(duì)齊。4、避免雜亂的注釋,如一整行星號(hào)。而是應(yīng)該使用空白將注釋同代碼分開。5、避免在塊注釋的周圍加上印刷框。這樣看起來(lái)可能很漂亮,但是難于維護(hù)。6、在部署發(fā)布之前,移除所有臨時(shí)或無(wú)關(guān)的注釋,以避免在日后的維護(hù)工作中產(chǎn)生混亂。7、如果需要用注釋來(lái)解釋復(fù)雜的代碼節(jié),請(qǐng)檢查此代碼以確定是否應(yīng)該重寫它。盡一切可能不注釋難以理解的代碼,而應(yīng)該重寫它。盡管一般不應(yīng)該為了使代碼更簡(jiǎn)單以便于人們使用而犧牲性能,但必須保持性能和可維護(hù)性之間的平衡。8、在編寫注釋時(shí)使用完整的句子。注釋應(yīng)該說(shuō)明代碼,而不應(yīng)該增加多義性。9、在編寫代碼時(shí)就注釋,因?yàn)橐院蠛芸赡軟]有時(shí)間這樣做。另外,如果有時(shí)機(jī)復(fù)查已編寫的代碼,在今天看來(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)用程序中,使用具有一致的標(biāo)點(diǎn)和結(jié)構(gòu)的統(tǒng)一樣式來(lái)構(gòu)造注釋。16、用空白將注釋同注釋分隔符分開。在沒有顏色提示的情況下查看注釋時(shí),這樣做會(huì)使注釋很明顯且容易被找到。17、在所有的代碼修改處加上修改內(nèi)容的注釋(此項(xiàng)只供參考)。18、對(duì)于常量、變量、表達(dá)式等使用單行注釋時(shí)建議放到聲明的后面;19、對(duì)于常量、變量、表達(dá)式等建議使用單行注釋,單行注釋格式如:privateintnumber;//注釋語(yǔ)句或:////注釋語(yǔ)句privateintnumber;20、為了使層次清晰,在閉合的右花括號(hào)后注釋該閉合所對(duì)應(yīng)的起點(diǎn)(此項(xiàng)只供參考)。{ 文檔型注釋該類注釋采用.Net已定義好的Xml標(biāo)簽來(lái)標(biāo)記,在聲明接口、類、方法、屬性、字段都應(yīng)該使用該類注釋,以便代碼完成后直接生成代碼文檔,讓別人更好的了解代碼的實(shí)現(xiàn)和接口。如///<summary>MyMethodisamethodintheMyClassclass.///<para>Here'showyoucouldmakeasecondparagraphinadescription.///<seecref="System.Console.WriteLine"/>///forinformationaboutoutputstatements.///</para>///<seealsocref="MyClass.Main"/>///</summary>publicstaticvoidMyMethod(intInt1){}又如:類屬性注釋標(biāo)準(zhǔn)在類的屬性必須以以下格式編寫屬性注釋:///<summary>///屬性說(shuō)明///</summary>方法注釋標(biāo)準(zhǔn)在類的方法聲明前必須以以下格式編寫注釋///<summary>///說(shuō)明:<對(duì)該方法的說(shuō)明>///</summary>///<paramname="<參數(shù)名稱>"><參數(shù)說(shuō)明></param>///<returns>///<對(duì)方法返回值的說(shuō)明,該說(shuō)明必須明確說(shuō)明返回的值代表什么含義>///</returns> 類c注釋(此項(xiàng)只供參考)該類注釋用于1、不再使用的代碼。2、臨時(shí)測(cè)試屏蔽某些代碼。用法/*[修改標(biāo)識(shí)][修改原因]...(thesourcecode)*/ 單行注釋該類注釋用于1、方法內(nèi)的代碼注釋。如變量的聲明、代碼或代碼段的解釋。注釋例如:///<summary> ///注釋語(yǔ)句 ///</summary>privateintnumber;或////注釋語(yǔ)句privateintnumber;或privateintnumber;//注釋語(yǔ)句2、方法內(nèi)變量的聲明或花括號(hào)后的注釋,注釋例如:if(1==1)//alwaystrue{statement;}//alwaystrue3.5文件注釋文件功能描述只需簡(jiǎn)述,具體詳情在類的注釋中描述。 注釋標(biāo)簽標(biāo)簽用法作用<c>c>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</c>text希望將其指示為代碼的文本。為您提供了一種將說(shuō)明中的文本標(biāo)記為代碼的方法。使用<code>將多行指示為代碼<para><para>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</para>content段落文本。用于諸如<remarks>或<returns>等標(biāo)記內(nèi),使您得以將結(jié)構(gòu)添加到文本中。<param><paramname='HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。'>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</param>name為方法參數(shù)名。將此名稱用單引號(hào)括起來(lái)('')。應(yīng)當(dāng)用于方法聲明的注釋中,以描述方法的一個(gè)參數(shù)。<paramref><paramrefname="HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。"/>name要引用的參數(shù)名。將此名稱用雙引號(hào)括起來(lái)("")。<paramref>標(biāo)記為您提供了一種指示詞為參數(shù)的方法??梢蕴幚鞽ML文件,從而用某種獨(dú)特的方法格式化該參數(shù)。<see><seeHYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。"member"/>cref="member"對(duì)可以通過(guò)當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將member傳遞給輸出XML中的元素名。必須將member括在雙引號(hào)("")中。使您得以從文本內(nèi)指定鏈接。使用<seealso>指示希望在“請(qǐng)參閱”一節(jié)中出現(xiàn)的文本。<seealso><seealsoHYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。"member"/>cref="member"對(duì)可以通過(guò)當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將member傳遞給輸出XML中的元素名。必須將member括在雙引號(hào)("")中使您得以指定希望在“請(qǐng)參閱”一節(jié)中出現(xiàn)的文本。使用<see>從文本<example><example>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</example>description代碼例如的說(shuō)明。使用<example>標(biāo)記可以指定使用方法或其他庫(kù)成員的例如。一般情況下,這將涉及到<code>標(biāo)記的使用。<code><code>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</code>content為希望將其標(biāo)記為代碼的文本。記為您提供了一種將多行指示為代碼的方法。使用<c>指示應(yīng)將說(shuō)明中的文本標(biāo)記為代碼<summary><summary>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</summary>此處description為對(duì)象的摘要。應(yīng)當(dāng)用于描述類型成員。使用<remarks>以提供有關(guān)類型本身的信息。<exception><exceptionHYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。"member">HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</exception>cref="member"對(duì)可從當(dāng)前編譯環(huán)境中獲取的異常的引用。編譯器檢查到給定異常存在后,將member轉(zhuǎn)換為輸出XML中的標(biāo)準(zhǔn)化元素名。必須將member括在雙引號(hào)("")中。description說(shuō)明。<exception>標(biāo)記使您可以指定類能夠引發(fā)的異常。<include><includefile='HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。'path='HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。[@HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。="HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。"]'/>filename包含文檔的文件名。該文件名可用路徑加以限定。將filename括在單引號(hào)中('')。Tagpath:filename中指向標(biāo)記名的標(biāo)記路徑。將此路徑括在單引號(hào)中('')。name注釋前邊的標(biāo)記中的名稱呼明符;名稱具有一個(gè)id。id位于注釋之前的標(biāo)記的id。將此id括在雙引號(hào)中("")。<include>標(biāo)記使您得以引用描述源代碼中類型和成員的另一文件中的注釋。這是除了將文檔注釋直接置于源代碼文件中之外的另一種可選方法。<include>標(biāo)記使用XMLXPath語(yǔ)法。有關(guān)自定義<include>使用的方法,請(qǐng)參閱XPath文檔。<list><listtype="bullet"|"number"|"table"><listheader><term>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</term><description>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</description></listheader><item><term>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</term><description>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</description></item></list>term定義的項(xiàng),該項(xiàng)將在text中定義。description目符號(hào)列表或編號(hào)列表中的項(xiàng)或者term的定義。<listheader>塊用于定義表或定義列表中的標(biāo)題行。定義表時(shí),只需為標(biāo)題中的項(xiàng)提供一個(gè)項(xiàng)。列表中的每一項(xiàng)用<item>塊指定。創(chuàng)建定義列表時(shí),既需要指定term也需要指定text。但是,對(duì)于表、項(xiàng)目符號(hào)列表或編號(hào)列表,只需為text提供一個(gè)項(xiàng)。列表或表所擁有的<item>塊數(shù)可以根據(jù)需要而定。<permission><permissionHYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。"member">HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</permission>cref="member"對(duì)可以通過(guò)當(dāng)前編譯環(huán)境進(jìn)行調(diào)用的成員或字段的引用。編譯器檢查到給定代碼元素存在后,將member轉(zhuǎn)換為輸出XML中的標(biāo)準(zhǔn)化元素名。必須將member括在雙引號(hào)("")中。description成員的訪問(wèn)的說(shuō)明。<permission>標(biāo)記使您得以將成員的訪問(wèn)記入文檔。System.Security.PermissionSet使您得以指定對(duì)成員的訪問(wèn)。<remarks><remarks>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</remarks>description成員的說(shuō)明。<remarks>標(biāo)記是可以指定有關(guān)類或其他類型的概述信息的位置。<summary>是可以描述該類型的成員的位置。<returns><returns>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</returns>description返回值的說(shuō)明。<returns>標(biāo)記應(yīng)當(dāng)用于方法聲明的注釋,以描述返回值。<value><value>HYPERLINK錯(cuò)誤!超鏈接引用無(wú)效。</value>property-description屬性的說(shuō)明。<value>標(biāo)記使您得以描述屬性。請(qǐng)注意,當(dāng)在VisualStudio.NET開發(fā)環(huán)境中通過(guò)代碼向?qū)砑訉傩詴r(shí),它將會(huì)為新屬性添加<summary>標(biāo)記。然后,應(yīng)該手動(dòng)添加<value>標(biāo)記以描述該屬性所表示的值。4申明 每行聲明數(shù)一行只建議作一個(gè)聲明,并按字母順序排列。如:intlevel;//推薦intsize;//推薦intx,y;//不推薦初始化建議在變量聲明時(shí)就對(duì)其做初始化。 位置變量建議置于塊的開始處,不要總是在第一次使用它們的地方做聲明。如voidMyMethod(){intint1=0;//beginningofmethodblockif(condition){intint2=0;//beginningof"if"block...}}不過(guò)也有一個(gè)例外for(inti=0;i<maxLoops;i++){...}應(yīng)避免不同層次間的變量重名,如intcount;...voidMyMethod(){if(condition){intcount=0;//避免...}...}類和接口的聲明1在方法名與其后的左括號(hào)間沒有任何空格。2左花括號(hào)“{”出現(xiàn)在聲明的下行并與之對(duì)齊,單獨(dú)成行。3方法間用一個(gè)空行隔開。 字段的聲明不要使用是public或protected的實(shí)例字段。如果避免將字段直接公開給開發(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í)例字段的正確使用。例如:publicclassControl:Component{privateinthandle;publicintHandle{get{returnhandle;}}}5命名標(biāo)準(zhǔn) 命名概述名稱應(yīng)該說(shuō)明“什么”而不是“如何”。通過(guò)避免使用公開基礎(chǔ)實(shí)現(xiàn)(它們會(huì)發(fā)生改變)的名稱,可以保留簡(jiǎn)化復(fù)雜性的抽象層。例如,可以使用GetNextStudent(),而不是GetNextArrayElement()。命名原則是:選擇正確名稱時(shí)的困難可能表明需要進(jìn)一步分析或定義項(xiàng)的目的。使名稱足夠長(zhǎng)以便有一定的意義,并且足夠短以避免冗長(zhǎng)。唯一名稱在編程上僅用于將各項(xiàng)區(qū)分開。表現(xiàn)力強(qiáng)的名稱是為了幫助人們閱讀;因此,提供人們可以理解的名稱是有意義的。不過(guò),請(qǐng)確保選擇的名稱符適宜用語(yǔ)言的規(guī)則和標(biāo)準(zhǔn)。以下幾點(diǎn)是推薦的命名方法。1、避免容易被主觀解釋的難懂的名稱,如方法名AnalyzeThis(),或者屬性名xxK8。這樣的名稱會(huì)導(dǎo)致多義性。2、在類屬性的名稱中包含類名是多余的,如。而是應(yīng)該使用。3、只要適宜,在變量名的末尾或開頭加計(jì)算限定符(Avg、Sum、Min、Max、Index)。4、在變量名中使用互補(bǔ)對(duì),如min/max、begin/end和open/close。5、布爾變量名應(yīng)該包含Is,這意味著Yes/No或True/False值,如fileIsFound。6、在命名狀態(tài)變量時(shí),避免使用諸如Flag的術(shù)語(yǔ)。狀態(tài)變量不同于布爾變量的地方是它可以具有兩個(gè)以上的可能值。不是使用documentFlag,而是使用更具描述性的名稱,如documentFormatType。(此項(xiàng)只供參考)7、即使對(duì)于可能僅出現(xiàn)在幾個(gè)代碼行中的生存期很短的變量,仍然使用有意義的名稱。僅對(duì)于短循環(huán)索引使用單字母變量名,如i或j??赡艿那闆r下,盡量不要使用原義數(shù)字或原義字符串,如Fori=1To7。而是使用命名常數(shù),如Fori=1ToNUM_DAYS_IN_WEEK以便于維護(hù)和理解。大小寫規(guī)則大寫標(biāo)識(shí)符中的所有字母都大寫。僅對(duì)于由兩個(gè)或者更少字母組成的標(biāo)識(shí)符使用該約定。例如:下表匯總了大寫規(guī)則,并提供了不同類型的標(biāo)識(shí)符的例如。標(biāo)識(shí)符大小寫例如類PascalAppDomain枚舉類型PascalErrorLevel枚舉值PascalFatalError事件PascalValueChange異常類PascalWebException注意總是以Exception后綴結(jié)尾。只讀的靜態(tài)字段PascalRedValue接口PascalIDisposable注意總是以I前綴開始。方法PascalToString命名空間Pascal屬性PascalBackColor公共實(shí)例字段PascalRedValue注意很少使用。屬性優(yōu)于使用公共實(shí)例字段。受保護(hù)的實(shí)例字段CamelredValue注意很少使用。屬性優(yōu)于使用受保護(hù)的實(shí)例字段。私有的實(shí)例字段CamelredValue參數(shù)CameltypeName方法內(nèi)的變量CamelbackColor 縮寫為了避免混淆和保證跨語(yǔ)言交互操作,請(qǐng)遵循有關(guān)區(qū)縮寫的使用的以下規(guī)則:1不要將縮寫或縮略形式用作標(biāo)識(shí)符名稱的組成部分。例如,使用GetWindow,而不要使用GetWin。2不要使用計(jì)算機(jī)領(lǐng)域中未被普遍接受的縮寫。3在適當(dāng)?shù)臅r(shí)候,使用眾所周知的縮寫替換冗長(zhǎng)的詞組名稱。例如,用UI作為UserInterface縮寫,用OLAP作為On-lineAnalyticalProcessing的縮寫。4在使用縮寫時(shí),對(duì)于超過(guò)兩個(gè)字符長(zhǎng)度的縮寫請(qǐng)使用Pascal大小寫或Camel大小寫。例如,使用HtmlButton或HTMLButton。但是,應(yīng)當(dāng)大寫僅有兩個(gè)字符的縮寫,如,,而不是。5不要在標(biāo)識(shí)符或參數(shù)名稱中使用縮寫。如果必須使用縮寫,對(duì)于由多于兩個(gè)字符所組成的縮寫請(qǐng)使用Camel大小寫,雖然這和單詞的標(biāo)準(zhǔn)縮寫相沖突。 命名空間1、命名命名空間時(shí)的一般性規(guī)則是使用公司名稱,后跟技術(shù)名稱和可選的功能與設(shè)計(jì),如下所示。CompanyName.TechnologyName[.Feature][.Design]2、命名空間使用Pascal大小寫,用逗號(hào)分隔開。3、TechnologyName指的是該項(xiàng)目的英文縮寫,或軟件名。4、命名空間和類不能使用同樣的名字。例如,有一個(gè)類被命名為Debug后,就不要再使用Debug作為一個(gè)名稱空間名。 類1、使用Pascal大小寫。2、用名詞或名詞短語(yǔ)命名類。3、使用全稱避免縮寫,除非縮寫已是一種公認(rèn)的約定,如URL、HTML4、不要使用類型前綴,如在類名稱上對(duì)類使用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)是基類的名稱。例如,ApplicationException對(duì)于從名為Exception的類派生的類是適當(dāng)?shù)拿Q,原因ApplicationException是一種Exception。請(qǐng)?jiān)趹?yīng)用該規(guī)則時(shí)進(jìn)行合理的判斷。例如,Button對(duì)于從Control派生的類是適當(dāng)?shù)拿Q。盡管按鈕是一種控件,但是將Control作為類名稱的一部分將使名稱不必要地加長(zhǎng)。publicclassFileStreampublicclassButtonpublicclassString接口以下規(guī)則概述接口的命名指南:1、用名詞或名詞短語(yǔ),或者描述行為的形容詞命名接口。例如,接口名稱IComponent使用描述性名詞。接口名稱ICustomAttributeProvider使用名詞短語(yǔ)。名稱IPersistable使用形容詞。2、使用Pascal大小寫。3、少用縮寫。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前綴。以下是正確命名的接口的例如。publicinterfaceIServiceProviderpublicinterfaceIFormatable以下代碼例如闡釋如何定義IComponent接口及其標(biāo)準(zhǔn)實(shí)現(xiàn)Component類。publicinterfaceIComponent{//Implementationcodegoeshere.}publicclassComponent:IComponent{//Implementationcodegoeshere.}屬性(Attribute)應(yīng)該總是將后綴Attribute添加到自定義屬性類。以下是正確命名的屬性類的例如。publicclassObsoleteAttribute{}枚舉(Enum)枚舉(Enum)值類型從Enum類繼承。以下規(guī)則概述枚舉的命名指南:1、對(duì)于Enum類型和值名稱使用Pascal大小寫。2、少用縮寫。3、不要在Enum類型名稱上使用Enum后綴。4、對(duì)大多數(shù)Enum類型使用單數(shù)名稱,但是對(duì)作為位域的Enum類型使用復(fù)數(shù)名稱。5、總是將FlagsAttribute添加到位域Enum類型。 參數(shù)以下規(guī)則概述參數(shù)的命名指南:1、使用描述性參數(shù)名稱。參數(shù)名稱應(yīng)當(dāng)具有足夠的描述性,以便參數(shù)的名稱及其類型可用于在大多數(shù)情況下確定它的含義。2、對(duì)參數(shù)名稱使用Camel大小寫。3、使用描述參數(shù)的含義的名稱,而不要使用描述參數(shù)的類型的名稱。開發(fā)工具將提供有關(guān)參數(shù)的類型的有意義的信息。因此,通過(guò)描述意義,可以更好地使用參數(shù)的名稱。少用基于類型的參數(shù)名稱,僅在適合使用它們的地方使用它們。4、不要使用保留的參數(shù)。保留的參數(shù)是專用參數(shù),如果需要,可以在未來(lái)的版本中公開它們。相反,如果在類庫(kù)的未來(lái)版本中需要更多的數(shù)據(jù),請(qǐng)為方法添加新的重載。5、不要給參數(shù)名稱加匈牙利語(yǔ)類型表示法的前綴。6、如果參數(shù)用來(lái)表述數(shù)據(jù)表字段內(nèi)容的,數(shù)據(jù)類型必須和表字段類型保持一致。如:UserId為int,不允許作為string類型來(lái)傳遞以下是正確命名的參數(shù)的例如。TypeGetType(stringtypeName)stringFormat(stringformat,args()Asobject) 方法以下規(guī)則概述方法的命名指南:1、使用動(dòng)詞或動(dòng)詞短語(yǔ)命名方法。2、返回類型應(yīng)為數(shù)據(jù)庫(kù)數(shù)據(jù)原始存儲(chǔ)的實(shí)際類型。比方:BokkType正確的應(yīng)為int,如果方法返回的BookType為string,這樣的設(shè)計(jì)不允許,使用的地方根本就不知道返回的BookType到底什么。如果是返回值有不存在的情況,應(yīng)返回可空的強(qiáng)類型,而不應(yīng)該返回0表示沒有值。3、使用Pascal大小寫。4、以下是正確命名的方法的實(shí)例。RemoveAll()GetCharArray()Invoke()5.11屬性(property)以下規(guī)則概述屬性的命名指南:使用名詞或名詞短語(yǔ)命名屬性。返回類型應(yīng)為數(shù)據(jù)庫(kù)數(shù)據(jù)原始存儲(chǔ)的實(shí)際類型。使用Pascal大小寫。不要使用匈牙利語(yǔ)表示法??紤]用與屬性的基礎(chǔ)類型相同的名稱創(chuàng)建屬性。例如,如果聲明名為Color的屬性,則屬性的類型同樣應(yīng)該是Color。請(qǐng)參閱本主題中后面的例如。以下代碼例如闡釋正確的屬性命名。publicclassSampleClass{publicColorBackColor{//CodeforGetandSetaccessorsgoeshere.}}以下代碼例如闡釋提供其名稱與類型相同的屬性。publicenumColor{//InsertcodeforEnumhere.}publicclassControl{publicColorColor{Get{//Insertcodehere.}set{//Insertcodehere.}}}以下代碼例如不正確,原因是Color屬性是Integer類型的。publicenumColor{//InsertcodeforEnumhere.}publicclassControl{publicintColor{//Insertcodehere}}在不正確的例如中,不可能引用Color枚舉的成員。Color.Xxx將被解釋為訪問(wèn)一個(gè)成員,該成員首先獲取Color屬性(C#中為int類型)的值,然后再訪問(wèn)該值的某個(gè)成員(該成員必須是System.Int32的實(shí)例成員)。5.12事件以下規(guī)則概述事件的命名指南:對(duì)事件處理程序名稱使用EventHandler后綴。指定兩個(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)而特定的事件類。用EventArgs后綴命名事件參數(shù)類。考慮用動(dòng)詞命名事件。使用動(dòng)名詞(動(dòng)詞的“ing”形式)創(chuàng)建表示事件前的概念的事件名稱,用過(guò)去式表示事件后。例如,可以取消的Close事件應(yīng)當(dāng)具有Closing事件和Closed事件。不要使用BeforeXxx/AfterXxx命名模式。不要在類型的事件聲明上使用前綴或者后綴。例如,使用Close,而不要使用OnClose。通常情況下,對(duì)于可以在派生類中重寫的事件,應(yīng)在類型上提供一個(gè)受保護(hù)的方法(稱為OnXxx)。此方法只應(yīng)具有事件參數(shù)e,因?yàn)榘l(fā)送方總是類型的實(shí)例。以下例如闡釋具有適當(dāng)名稱和參數(shù)的事件處理程序。publicdelegatevoidMouseEventHandler(objectsender,MouseEventArgse);以下例如闡釋正確命名的事件參數(shù)類。publicclassMouseEventArgs:EventArgs{intx;inty;publicMouseEventArgs(intx,inty){this.x=x;this.y=y;}publicintX{get{returnx;}}publicintY{get{returny;}}}5.13常量(const)以下規(guī)則概述常量的命名指南:所有單詞大寫,多個(gè)單詞之間用"_"隔開。如:publicconststringPAGE_TITLE="Welcome";2、系統(tǒng)中僅推薦在Const.cs和ConstValue.cs中聲明;3、頁(yè)面級(jí)文件【CNCECHSSE目錄下】和【SUBHSSE目錄下】中,不能按以上規(guī)則命名;4、其它未說(shuō)明的地方,使用Pascal大小寫命名。5.14字段以下規(guī)則概述字段的命名指南:private、protected使用Camel大小寫。public使用Pascal大小寫。拼寫出字段名稱中使用的所有單詞。僅在開發(fā)人員一般都能理解時(shí)使用縮寫。字段名稱不要使用大寫字母。下面是正確命名的字段的例如。classSampleClass{stringurl;stringdestinationUrl;}不要對(duì)字段名使用匈牙利語(yǔ)表示法。好的名稱描述語(yǔ)義,而非類型。不要對(duì)字段名或靜態(tài)字段名應(yīng)用前綴。具體說(shuō)來(lái),不要對(duì)字段名稱應(yīng)用前綴來(lái)區(qū)分靜態(tài)和非靜態(tài)字段。例如,應(yīng)用g_或s_前綴是不正確的。對(duì)預(yù)定義對(duì)象實(shí)例使用公共靜態(tài)只讀字段。如果存在對(duì)象的預(yù)定義實(shí)例,則將它們聲明為對(duì)象本身的公共靜態(tài)只讀字段。使用Pascal大小寫,原因是字段是公共的。下面的代碼例如闡釋公共靜態(tài)只讀字段的正確使用。publicstructColor{publicstaticreadonlyColorRed=newColor(0x0000FF);publicColor(intrgb){//Insertcodehere.}publicColor(byter,byteg,byteb){//Insertcodehere.}publicbyteRedValue{get{returnColor;}}5.15靜態(tài)字段以下規(guī)則概述靜態(tài)字段的命名指南:1、使用名詞、名詞短語(yǔ)或者名詞的縮寫命名靜態(tài)字段。2、使用Pascal大小寫。3、對(duì)靜態(tài)字段名稱使用匈牙利語(yǔ)表示法前綴【不推薦使用,可使用常量命名規(guī)則】。4、建議盡可能使用靜態(tài)屬性而不是公共靜態(tài)字段。5.16集合集合是一組組合在一起的類似的類型化對(duì)象,如哈希表、查詢、堆棧、字典和列表,集合的命名建議用復(fù)數(shù)。如:?jiǎn)螖?shù)型式舉列:審核狀態(tài):AuditState提交類型:PostType復(fù)數(shù)型式舉列:審核狀態(tài):AuditStatus提交類型:PostTypes5.17措詞避免使用與常用的.NET框架命名空間重復(fù)的類名稱。例如,不要將以下任何名稱用作類名稱:System、Collections、Forms或UI。有關(guān).NET框架命名空間的列表,請(qǐng)參閱類庫(kù)。另外,避免使用和以下關(guān)鍵字沖突的標(biāo)識(shí)符。AddHandlerAddressOfAliasAndAnsiAsAssemblyAutoBaseBooleanByRefByteByValCallCaseCatchCBoolCbyteCcharCdateCdecCDblCharCintClassCLngCobjConstCshortCSngCStrCtypeDateDecimalDeclareDefaultDelegateDimDoDoubleEachElseElseIfEndEnumEraseErrorEventExitExternalSourceFalseFinalizeFinallyFloatForFriendFunctionGetGetTypeGotoHandlesIfImplementsImportsInInheritsIntegerInterfaceIsLetLibLikeLongLoopMeModModuleMustInheritMustOverrideMyBaseMyClassNamespaceNewNextNotNothingNotInheritableNotOverridableObjectOnOptionOptionalOrOverloadsOverridableOverridesParamArrayPreservePrivatePropertyProtectedPublicRaiseEventReadOnlyReDimRegionREMRemoveHandlerResumeReturnSelectSetShadowsSharedShortSingleStaticStepStopStringStructureSubSyncLockThenThrowToTrueTryTypeOfUnicodeUntilvolatileWhenWhileWithWithEventsWriteOnlyXorEvalextendsinstanceofpackagevar

6語(yǔ)句 每行一個(gè)語(yǔ)句每行最多包含一個(gè)語(yǔ)句。如:a++;//推薦b--;//推薦a++;b--;//不推薦 復(fù)合語(yǔ)句復(fù)合語(yǔ)句是指包含"父語(yǔ)句{子語(yǔ)句;子語(yǔ)句;}"的語(yǔ)句,使用復(fù)合語(yǔ)句應(yīng)遵循以下幾點(diǎn)1子語(yǔ)句要縮進(jìn)。2左花括號(hào)“{”在復(fù)合語(yǔ)句父語(yǔ)句的下一行并與之對(duì)齊,單獨(dú)成行。3即使只有一條子語(yǔ)句要不要省略花括號(hào)“{}”。如:while(d+=s++){n++;}return語(yǔ)句return語(yǔ)句中不使用括號(hào),除非它能使返回值更加清晰。如:return;returnmyDisk.size();return(size?size:defaultSize);if、if-else、ifelse-if語(yǔ)句if、if-else、ifelse-if語(yǔ)句使用格式if(condition){statements;}if(condition){statements;}else{statements;}if(condition){statements;}elseif(condition){statements;}else{statements;}6.4for、foreach語(yǔ)句for語(yǔ)句使用格式for(initialization;condition;update){statements;}空的for語(yǔ)句(所有的操作都在initialization、condition或update中實(shí)現(xiàn))使用格式for(initialization;condition;update);//updateuseridforeach語(yǔ)句使用格式foreach(objectobjinarray){statements;}注意1在循環(huán)過(guò)程中不要修改循環(huán)計(jì)數(shù)器。2對(duì)每個(gè)空循環(huán)體給出確認(rèn)性注釋。while語(yǔ)句while語(yǔ)句使用格式while(condition){statements;}空的while語(yǔ)句使用格式while(condition);do-while語(yǔ)句do-while語(yǔ)句使用格式do{statements;}while(condition);switch-case語(yǔ)句switch-case語(yǔ)句使用格式switch(condition){case1:statements;break;case2:statements;break;default:statements;break;}注意:1、語(yǔ)句switch中的每個(gè)case各占一行。2、語(yǔ)句switch中的case按字母順序排列。3、為所有switch語(yǔ)句提供default分支。4、所有的非空case語(yǔ)句必須用break;語(yǔ)句結(jié)束。try-catch語(yǔ)句try-catch語(yǔ)句使用格式try{statements;}catch(ExceptionClasse){statements;}finally{statements;}using塊語(yǔ)句using塊語(yǔ)句使用格式using(object){statements;}goto語(yǔ)句goto語(yǔ)句使用格式gotoLabel1:statements;Lable1:statements;7控件命名規(guī)則命名方法控件名簡(jiǎn)寫+英文描述,英文描述首字母大寫 主要控件名簡(jiǎn)寫對(duì)照表【數(shù)據(jù)類型命名僅供參考,不推薦使用。】TypePrefixExampleArrayarrarrShoppingListBooleanblnblnIsPostBackBytebytbytPixelValueCharchrchrDelimiterDateTimedtmdtmStartDateDecimaldecdecAverageHeightDoubledbldblSizeofUniverseIntegerintintRowCounterLonglnglngBillGatesIncomeObjectobjobjReturnValueShortshrshrAverageSinglesngsngMaximumStringstrstrFirstNameWebControlsTypePrefixExamplePrefixExampleAdRotatoradrtadrtTopAdButtonbtnbtnSubmit_ButtonSubmit_ButtonCalendarcalcalMettingDatesCheckBoxchkchkBlueCheckBoxListchklchklFavColorschklchklInvoiceStateCompareValidatorvalcvalcValidAgeCVCVAddresseeCustomValidatorvalxvalxDBCheckvalxMailModeDataGriddgrddgrdTitlesGridInvoiceGridDataListdlstdlstTitlesdlstdlstCollectBillDynamicValidatorvaldvaldColorsdcvdcvCustomerNameDropDownListdropdropCountriesProjectStateHyperLinklnklnkDetailslnklnkBooksImageimgimgAuntBettyimgimgOkImageButtonibtnibtnSubmit_ButtonSave_ButtonLabellbllblResultslbllblTitleLinkButtonlbtnlbtnSubmitlbtnlbtnShowListBoxlstlstCountriesPanelpnlpnlForm2PlaceHolderplhplhFormContentsRadioButtonradradFemaleRadioButtonListradlradlGenderrdolrdolGenderRangeValidatorvalgvalgAgeRVRVPostCodeRegularExpressionValidatorvalevaleEmail_ValidatorREVREVTaxAccountRepeaterrptrptQueryResultsrptrptInvoicesRequiredFieldValidatorvalrvalrFirstNameRFVRFVAccountBankTabletbltblCountryCodestbltblQueryTableCelltblctblcGermanyDisCountTableRowtblrtblrCountrytblrtblrDisplayTextBoxtxttxtFirstNameCustomerNameValidationSummaryvalsvalsFormErrorsvalsvalsFormErrorsXMLxmlcxmlcTransformResultsUpdatePanelUPUPCity【僅供參考】TypePrefixExampleConnectionconconNorthwindCommandcmdcmdReturnProductsParameterparmparmProductIDDataAdapterdaddadProductsDataReaderdtrdtrProductsDataSetdstdstNorthWindDataTabledtbldtblProductDataRowdrowdrowRow98DataColumndcoldcolProductIDDataRelationdreldrelMasterDetailDataViewdvwdvwFilteredProducts8頁(yè)面標(biāo)準(zhǔn)1、對(duì)于多處使用的頁(yè)面樣式要定義。2、DataGrid、GridView等列表顯示中字段值為字符且長(zhǎng)度超過(guò)6個(gè)漢字的,使字段值左對(duì)齊;字段值為數(shù)字的,使字段值右對(duì)齊;除整數(shù)外其他含有小數(shù)的,一般情況下四舍五入保留2為小數(shù),特殊數(shù)字根據(jù)實(shí)際業(yè)務(wù)具體處理。如:折扣輸入正整數(shù),印張保留3為小數(shù),材料單位為噸的保留6位小數(shù),為令的保留3位小數(shù),為張的保留1位小數(shù)。DataGrid、GridView等列表顯示中默認(rèn)每頁(yè)顯示15行。DataGrid、GridView等列表中的字段標(biāo)題居中對(duì)齊,不換行。列表頁(yè)面中輸入控件、選擇控件、下拉控件盡量保持寬度一致,擺放位置為左對(duì)齊,字段標(biāo)題居中對(duì)齊不換行,字段標(biāo)題不能兩邊對(duì)齊的,默認(rèn)右對(duì)齊;頁(yè)面中有字段驗(yàn)證控件的,如果列表中有如:“增加”、“統(tǒng)計(jì)”等定位到新頁(yè)面按鈕的,請(qǐng)把此按鈕的頁(yè)面驗(yàn)證去掉,如果驗(yàn)證控件驗(yàn)證數(shù)據(jù)對(duì)按鈕執(zhí)行結(jié)果有影響的如:“打印”,需要加驗(yàn)證。例如:?jiǎn)T工姓名為下拉框,在HTML頁(yè)面中加STYLE。列表頁(yè)面中的頁(yè)面標(biāo)題居中顯示,要和菜單和具體表述的模塊或功能保持一致。新開發(fā)列表模塊中使用的控件、樣式必須使用系統(tǒng)中存在的最新的,如:翻頁(yè)控件;提交、顯示、列表等頁(yè)面中的日期輸入框默認(rèn)寬度為70px只讀+日期選擇控件;下來(lái)選擇框默認(rèn)90px;輸入框默認(rèn)90px;盡量遵循控件左對(duì)齊和兩邊對(duì)齊的方式。提交、顯示頁(yè)面中的顯示字段,如果字段值不超過(guò)6個(gè)漢字的,默認(rèn)居中對(duì)齊,超過(guò)6個(gè)漢字的默認(rèn)左對(duì)齊;如:叢書信息有可能超過(guò)6個(gè)漢字,左對(duì)齊。頁(yè)面數(shù)據(jù)驗(yàn)證控件的位置和被驗(yàn)證控件的保持同行且不換行,驗(yàn)證控件如:requiredfieldvalidator的ErrorMessage要和ToolTip保持一致,其它存在此屬性的驗(yàn)證控件也按照此方式執(zhí)行;驗(yàn)證控件提示信息中的標(biāo)點(diǎn)符號(hào)用中文全角。日期格式?jīng)]有特殊要求的情況下一律默認(rèn):yyyy-MM-dd格式。頁(yè)面中的冗余代碼全部刪除。頁(yè)面中控件的擺放位置需要通過(guò)Table表格去約束此控件所處位置,不能把多個(gè)控件放在同一個(gè)TD中且通過(guò)<br>或 去實(shí)現(xiàn)位置的擺放。HtmlControl控件的寬度盡量使用style=”width:90px”去約束而不是用size="6"。 1、同種類型的腳本盡量放到同一個(gè)位置。 2、腳本中的提示信息的格式要和頁(yè)面驗(yàn)證控件的提示信息保持一致;如:提示中的標(biāo)點(diǎn)符號(hào)要使用中文全角。 3、腳本變量、數(shù)組、對(duì)象、驗(yàn)證、返回值等命名規(guī)則同樣遵循帕斯卡和駱駝命名法; 1、頁(yè)面中的字段命名盡量和表設(shè)計(jì)中的字段名稱保持一致。 2、對(duì)于字段名稱和數(shù)據(jù)表中當(dāng)成設(shè)計(jì)字段名稱不一致且需要呈現(xiàn)的,如果有特殊呈現(xiàn)器的,可以借助字段呈現(xiàn)器呈現(xiàn),如:xx信息SeriesInfo可以命名為:SeriesInfo_SESNAME,便于以后程序維護(hù)。9其他 類型轉(zhuǎn)換1、盡量避免強(qiáng)制類型轉(zhuǎn)換。2、如果不得不做類型轉(zhuǎn)換,盡量用顯式方式。9.2錯(cuò)誤與提示。2、權(quán)限驗(yàn)證錯(cuò)誤頁(yè)面,要有返回按鈕。3、錯(cuò)誤頁(yè)面的信息提示要簡(jiǎn)明、扼要,表述客戶可以理解的,開發(fā)人員明確錯(cuò)誤原因的。命名陷阱從名字看是引導(dǎo)走向A,而實(shí)際上引導(dǎo)的方向卻是A的相反方向,挖著坑讓人跳.比方:來(lái)源于BLL.boolisPoised=(gg.has.WholesaleGatheringState&&gg.WholesaleGatheringState!=ST.Poised);看名字isPoised表示“已沖紅”的意思,而繼續(xù)仔細(xì)看代碼,卻驚奇的發(fā)現(xiàn)它表達(dá)的是“不是沖紅”的意思,如此命名一不小心就引導(dǎo)人犯錯(cuò)誤。偷懶設(shè)計(jì)加一個(gè)字段就可以解決的問(wèn)題,卻要用另一種危險(xiǎn)的設(shè)計(jì)。比方:BookStorage圖書庫(kù)存期初的存儲(chǔ),完全可以在圖書庫(kù)存表加一個(gè)字段存儲(chǔ)期初值,而目前卻在圖書庫(kù)存里單獨(dú)加一條數(shù)據(jù)記錄來(lái)存儲(chǔ)期初(用修裝數(shù)量等于-1來(lái)區(qū)別)。這樣維護(hù)困難,還很容易出錯(cuò),萬(wàn)一修裝數(shù)量出現(xiàn)-1了怎么辦?捉迷藏存儲(chǔ)蘋果放在存放蘋果的地方容易找到,把蘋果放到存放西紅柿的地方呢?放在大家都熟悉的地方需要的時(shí)候才容易找到。比方:來(lái)自方法BookProductionStorageIn表示的是“生產(chǎn)樣書單入庫(kù)”的操作怎么放到印制單操作類里去了,這讓同事怎么找?重復(fù)制造輪子相同功能的相同方法何必重復(fù)寫,框架提供了經(jīng)過(guò)測(cè)試的方法不用。增加維護(hù)工作量,還容易產(chǎn)生BUG,輪子已經(jīng)制造完成就不要再制造重復(fù)的。越描越黑有問(wèn)題就要找到問(wèn)題的根源,徹底解決,而不是繞開問(wèn)題,大家都繞誰(shuí)來(lái)解決。比方:“類別”還有顯示值是空的設(shè)置項(xiàng)?這是開發(fā)人員寫的代碼把“請(qǐng)選擇”存儲(chǔ)到數(shù)據(jù)庫(kù)里了,導(dǎo)致顯示的頁(yè)面會(huì)顯示“未知數(shù):0”,正確的應(yīng)該是把錯(cuò)誤存儲(chǔ)進(jìn)數(shù)據(jù)庫(kù)的代碼修正過(guò)來(lái),而不應(yīng)該在數(shù)據(jù)里增加這么一項(xiàng)來(lái)繞過(guò)去,蒙蔽大家的眼睛。硬代碼這個(gè)問(wèn)題說(shuō)過(guò)很多此,基本上每次開會(huì)都強(qiáng)調(diào)不允許寫硬代碼,硬代碼產(chǎn)生的錯(cuò)誤有時(shí)候非常難發(fā)現(xiàn),大量奇怪的問(wèn)題都是來(lái)源于硬代碼導(dǎo)致。比方:Session命名不定義直接引用等大量的這類問(wèn)題。7、其他未列問(wèn)題;10簡(jiǎn)版要求編碼要求禁止使用縮寫命名,國(guó)際通用的除外。如:不允許把ProjectId命名成pid等。用詞要正規(guī),簡(jiǎn)潔,恰當(dāng),不能用漢語(yǔ)拼音,編碼風(fēng)格一致,表達(dá)意思易懂。所以源代碼文件(二進(jìn)制文件,版本日志除外)必須以UTF-8帶簽名格式保存,防止出現(xiàn)亂碼情況不允許寫硬代碼,都在常量類中定義再引用不允許:if(bk.BookType=1){……..}推薦:if(bk.BookType=MagicNumber.BOOKTYPE_THEONE){……..}5、涉及Sql語(yǔ)句編寫的地方如果有參數(shù)要傳遞,必須把Sql語(yǔ)句參數(shù)化,防止Sql注入。不允許:select*fromBookwhereBookName=’張三’推薦: select*fromBookwhereBookName=@Bookname,其中@Bookname的值為’張三’6、編寫Sql語(yǔ)句時(shí)表的別名定義大家都熟悉的名字,讀取的列必須限定表前綴,原始列名大小寫必須和數(shù)據(jù)庫(kù)一樣。錯(cuò)誤:SelectprojectidfromProjectpj,Book正確:Selectpj.ProjectIdfromProjectpj,Book7、代碼注釋要簡(jiǎn)潔準(zhǔn)確,格式符合要求。對(duì)外公開的方法(類等):///<summary> ///創(chuàng)建待辦全局?jǐn)?shù)據(jù),創(chuàng)建前會(huì)自動(dòng)檢測(cè)全局?jǐn)?shù)據(jù)中是否已存在的相同主鍵的紀(jì)錄 ///如果存在將先刪除,否則直接插入 ///</summary> ///<paramname="entityId">單據(jù)Id</param> ///<paramname="entityTypeName">單據(jù)Model名</param>///<paramname="trigerColumnName">觸發(fā)列名</param>internalstaticvoidCreateGlobalData(intentityId,stringentityTypeName,stringtrigerColumnName) { ……. }對(duì)外公開的變量:///<summary>///“真”的常量字符串///</summary>internalintTRUESTRING=”True”局部變量:intbeginIndex=0;//索引開始位置/*索引開始位置*/intbeginIndex=0;8、代碼高效,兼容性強(qiáng).。使用前先判斷是否滿足使用條件。9、功能性代碼(界面外的,如某個(gè)流程)必須都放在對(duì)應(yīng)的Info文件(BLL)中,不允許在頁(yè)面(UI)對(duì)應(yīng)的.cs文件中寫這些代碼,方便自動(dòng)化測(cè)試和代碼共享。10、頁(yè)面(UI)間不允許相互調(diào)用對(duì)應(yīng).cs文件中的代碼。11、同一個(gè)功能的代碼不允許在多個(gè)地方定義。12、因日期區(qū)域性問(wèn)題,根據(jù)日期生成文件名稱時(shí)在64位操作系統(tǒng)上會(huì)出現(xiàn)問(wèn)題,如下代碼為有問(wèn)題的:stringnfn=DateTime.Now.ToString().Replace("-","").Replace(":","").Replace("","")+ext; 建議使用時(shí)間的滴答數(shù)來(lái)生成;13、VS2021中代碼格式統(tǒng)一設(shè)置。如下圖:在菜單欄中點(diǎn)擊工具-選項(xiàng),找到文本編輯器-HTML-格式,點(diǎn)擊標(biāo)記專用選項(xiàng)。在標(biāo)記專用選項(xiàng)的客戶端HTML標(biāo)記中選擇要設(shè)置的標(biāo)記然后按如下描述設(shè)置標(biāo)記的格式標(biāo)記名換行符<div>之前和之后<td>之前和之后VS2021中設(shè)置JavaScript的格式 編碼技巧1、腳本編寫中,為避免重復(fù)恢復(fù)數(shù)據(jù)庫(kù)和方便腳本調(diào)試,可以嘗試以下方法:BEGINTRANDELETEFROMProjectWHEREProjectId=1--COMMITROLLBACKGO2、在寫SQL糾錯(cuò)腳本的時(shí)候注意觀察數(shù)據(jù)的變化條數(shù),確保變化的數(shù)據(jù)都是需要修正的; 3、在使用VS2021中盡量使用開發(fā)工具自帶的功能如:.CS中【組織using】菜單中的“移除和排序”等功能;ASPX盡量使用【HTML源編輯】菜單中的自動(dòng)格式化頁(yè)面代碼功能;對(duì)函數(shù)參數(shù)順序調(diào)整盡量用【重構(gòu)】菜單中的“重新排列參數(shù)功能”以便對(duì)相關(guān)引用統(tǒng)一修改;附錄一:命名由來(lái)匈牙利命名法匈牙利命名法是一名匈牙利程序員發(fā)明的,而且他在微軟工作了多年。此命名法就是通過(guò)微軟的各種產(chǎn)品和文檔傳出來(lái)的。多數(shù)有經(jīng)驗(yàn)的程序員,不管他們用的是哪門兒語(yǔ)言,都或多或少在使用它。這種命名法的基本原則是:變量名=屬性+類型+對(duì)象描述即一個(gè)變量名是由三部分信息組成,這樣,程序員很容易理解變量的類型、用途,而且便于記憶。下邊是一些推薦使用的規(guī)則例子,你可以挑選使用,也可以根據(jù)個(gè)人喜好作些修改再用之。⑴屬性部分:全局變量:g_常量:c_類成員變量:m_⑵類型部分:指針:p句柄:h布爾型:b浮點(diǎn)型:f無(wú)符號(hào):u⑶描述部分:初始化:Init臨時(shí)變量:Tmp目的對(duì)象:Dst源對(duì)象:Src窗口:Wnd下邊舉例說(shuō)明:hwnd:h表示句柄,wnd表示窗口,合起來(lái)為“窗口句柄”。m_bFlag:m表示成員變量,b表示布爾,合起來(lái)為:“某個(gè)類的成員變量,布爾型,是一個(gè)狀態(tài)標(biāo)志”。駱駝(Camel)命名法駱駝式命令法,正如它的名稱所表示的那樣,是指混合使用大小寫字母來(lái)構(gòu)成變量和函數(shù)的名字。例如,下面是分別用駱駝式命名法和下劃線法命名的同一個(gè)函數(shù):printUserPaychecks();print_user_paychecks();第一個(gè)函數(shù)名使用了駱駝式命名法——函數(shù)名中的每一個(gè)邏輯斷點(diǎn)都有一個(gè)大寫字母來(lái)標(biāo)記;第二個(gè)函數(shù)名使用了下劃線法函數(shù)名中的每一個(gè)邏輯斷點(diǎn)都有一個(gè)下劃線來(lái)標(biāo)記。駱駝式命名法近年來(lái)越來(lái)越流行了,在許多新的函數(shù)庫(kù)和MicrosoftWindows這樣的環(huán)境中,它使用得當(dāng)相多。另一方面,下劃線法是c出現(xiàn)后開始流行起來(lái)的,在許多舊的程序和UNIX這樣的環(huán)境中,它的使用非常普遍。帕斯卡(pascal)命名法與駱駝命名法類似。只不過(guò)駱駝命名法是首字母小寫,而帕斯卡命名法是首字母大寫如:publicvoidDisplayInfo();stringUserName;二者都是采用了帕斯卡命名法。在C#中,以帕斯卡命名法和駱駝命名法居多。簡(jiǎn)單說(shuō)MyData就是一個(gè)帕斯卡命名的例如而myData是一個(gè)駱駝命名法,它第一個(gè)單詞的第一個(gè)字母小寫,后面的單詞首字母大寫,看起來(lái)像一個(gè)駱駝而iMyData是一個(gè)匈牙利命名法,它的小寫的i說(shuō)明了它的型態(tài),后面的和帕斯卡命名相同,指示了該變量的用途.附錄二:資料來(lái)源此編碼標(biāo)準(zhǔn)編寫一是參照網(wǎng)絡(luò)搜集的資料,二是根據(jù)開發(fā)部開發(fā)過(guò)程中總結(jié)的代碼經(jīng)驗(yàn)整理而成,如果網(wǎng)絡(luò)來(lái)源的資料參考涉及到商業(yè)或不當(dāng)之處,請(qǐng)及時(shí)告知,我們會(huì)做相應(yīng)處理。附錄三:工具輔助1、采用【微軟內(nèi)部使用的編碼規(guī)則檢查工具】作為產(chǎn)品開發(fā)代碼檢查的一個(gè)輔助工具,如果不符合此標(biāo)準(zhǔn)的,要求開發(fā)人員限期修正;2、安裝和設(shè)置下載最新的,然后安裝;安裝完成后打開VS2021開發(fā)環(huán)境如下:文件的最初來(lái)源如下圖:負(fù)責(zé)人在開始使用此軟件時(shí)會(huì)一次性把此文件參加解決方案文件夾【web.sln同目錄】,其他成員不用單獨(dú)指定。

高考語(yǔ)文試卷一、語(yǔ)言文字運(yùn)用(15分)1.在下面

溫馨提示

  • 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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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)論