




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、C#開發(fā)編碼規(guī)范注記:Pascal 大小寫形式所有單詞第一個字母大寫,其他字母小寫。Camel 大小寫形式除了第一個單詞,所有單詞第一個字母大寫,其他字母小寫。類名使用Pascal大小寫形式 public class HelloWorld 方法使用Pascal大小寫形式 public class HelloWorld void SayHello(string name) 變量和方法參數(shù)使用Camel 大小寫形式 public class HelloWorld int totalCount = 0; void SayHello(string name) string fullMessage =
2、Hello + name; 不要使用匈牙利方法來命名變量。以前,多數(shù)程序員喜歡把數(shù)據(jù)類型作為變量名的前綴而m_作為成員變量的前綴。例如: string m_sName;int nAge;然而,這種方式在.NET編碼規(guī)范中是不推薦的。所有變量都用Camel 大小寫形式,而不是用數(shù)據(jù)類型和m_來作前綴。用有意義的,描述性的詞語來命名變量。別用縮寫。用name,address,salary等代替nam,addr,sal。別使用單個字母的變量象i,n,x 等。使用 index,temp等。用于循環(huán)迭代的變量例外: for ( int i = 0; i count; i+ ) 如果變量只用于迭代計數(shù),沒
3、有在循環(huán)的其他地方出現(xiàn),許多人還是喜歡用單個字母的變量(i) ,而不是另外取名。變量名中不使用下劃線 (_) 。命名空間需按照標準的模式命名。文件名要和類名匹配,例如,對于類HelloWorld,相應的文件名應為helloworld.cs (或,helloworld.vb) 縮進和間隔縮進用TAB。不用 SPACES。注釋需和代碼對齊?;ɡɑ?( ) 需和括號外的代碼對齊。用一個空行來分開代碼的邏輯分組。 bool SayHello (string name) string fullMessage = Hello + name; DateTime currentTime = DateTime.
4、Now; string message = fullMessage + ,the time is : + currentTime.ToShortTimeString(); MessageBox.Show ( message ); if ( ) / Do something / return false; return true; 這段代碼看起來比上面的好: bool SayHello ( string name ) string fullMessage = Hello + name; DateTime currentTime = DateTime.Now; string message = f
5、ullMessage + ,the time is : + currentTime.ToShortTimeString(); MessageBox.Show ( message ); if ( ) / Do something / return false; return true; 在一個類中,各個方法需用一空行,也只能是一行分開?;ɡɑ⌒瑾毩⒁恍?,而不象if,for 等可以跟括號在同一行。好: if ( ) / Do something 不好: if ( ) / Do something 在每個運算符和括號的前后都空一格。 好: if ( showResult = true ) for (
6、 int i = 0; i 10; i+ ) / 不好: if(showResult=true) for(int i= 0;i10;i+) / 良好的編程習慣遵從以下良好的習慣以寫出好程序。避免使用大文件。如果一個文件里的代碼超過300400行,必須考慮將代碼分開到不同類中。避免寫太長的方法。一個典型的方法代碼在125行之間。如果一個方法發(fā)代碼超過25行,應該考慮將其分解為不同的方法。方法名需能看出它作什么。別使用會引起誤解的名字。如果名字一目了然,就無需用文檔來解釋方法的功能了。好: void SavePhoneNumber ( string phoneNumber ) / Save the
7、 phone number. 不好: / This method will save the phone number. void SaveData ( string phoneNumber ) / Save the phone number. 一個方法只完成一個任務。不要把多個任務組合到一個方法中,即使那些任務非常小。好: / Save the address。 SaveAddress ( address ); / Send an email to the supervisor to inform that the address is updated. SendEmail ( addres
8、s,email ); void SaveAddress ( string address ) / Save the address. / void SendEmail ( string address,string email ) / Send an email to inform the supervisor that the address is changed. / 不好: / Save address and send an email to the supervisor to inform that the address is updated. SaveAddress ( addr
9、ess, email ); void SaveAddress ( string address, string email ) / Job 1. / Save the address. / / Job 2. / Send an email to inform the supervisor that the address is changed. / 使用C# 或 VB.NET的特有類型,而不是System命名空間中定義的別名類型。好: int age; string name; object contactInfo;不好: Int16 age; String name; Object cont
10、actInfo;別在程序中使用固定數(shù)值,用常量代替。別用字符串常數(shù),用資源文件。避免使用很多成員變量,聲明局部變量,并傳遞給方法。不要在方法間共享成員變量,如果在幾個方法間共享一個成員變量,那就很難知道是哪個方法在什么時候修改了它的值。必要時使用enum,別用數(shù)字或字符串來指示離散值。 好: enum MailType Html, PlainText, Attachment void SendMail (string message,MailType mailType) switch ( mailType ) case MailType.Html: / Do something break;
11、case MailType.PlainText: / Do something break; case MailType.Attachment: / Do something break; default: / Do something break; 不好: void SendMail (string message, string mailType) switch ( mailType ) case Html: / Do something break; case PlainText: / Do something break; case Attachment: / Do something
12、 break; default: / Do something break; 別把成員變量聲明為 public或 protected。都聲明為private 而使用 public/protected 的Properties。不在代碼中使用具體的路徑和驅(qū)動器名,使用相對路徑,并使路徑可編程。永遠別設想你的代碼是在“C:”盤運行。你不會知道,一些用戶在網(wǎng)絡或“Z:”盤運行程序。應用程序啟動時作些“自檢”并確保所需文件和附件在指定的位置。必要時檢查數(shù)據(jù)庫連接。出現(xiàn)任何問題給用戶一個友好的提示。如果需要的配置文件找不到,應用程序需能自己創(chuàng)建使用默認值的一份。如果在配置文件中發(fā)現(xiàn)錯誤值,應用程序要拋出錯
13、誤,給出提示消息告訴用戶正確值。錯誤消息需能幫助用戶解決問題。永遠別用象“應用程序出錯”,“發(fā)現(xiàn)一個錯誤”等錯誤消息。而應給出象“更新數(shù)據(jù)庫失敗,請確保登陸id和密碼正確。” 的具體消息。顯示錯誤消息時,除了說哪里錯了,還應提示用戶如何解決問題。不要用象“更新數(shù)據(jù)庫失敗。”這樣的,要提示用戶怎么做:“更新數(shù)據(jù)庫失敗,請確保登陸id和密碼正確。” 顯示給用戶的消息要簡短而友好。但要把所有可能的信息都記錄下來,以助診斷問題。 注釋別每行代碼,每個聲明的變量都做注釋。在需要的地方注釋??勺x性強的代碼需要很少的注釋,如果所有的變量和方法的命名都很有意義,會使代碼可讀性很強并無需太多注釋。行數(shù)不多的注釋
14、會使代碼看起來優(yōu)雅。但如果代碼不清晰,可讀性差,那就糟糕。如果因為某種原因使用了復雜艱澀的原理,為程序配備良好的文檔和重分的注釋。對一個數(shù)值變量采用不是0,-1等的數(shù)值初始化,給出選擇該值的理由。簡言之,要寫清晰,可讀的代碼以致無須什么注釋就能理解。對注釋做拼寫檢查,保證語法和標點符號的正確使用。異常處理不要“捕捉了異常卻什么也不做”。如果隱藏了一個異常,你將永遠不知道異常到底發(fā)生了沒有。發(fā)生異常時,給出友好的消息給用戶,但要精確記錄錯誤的所有可能細節(jié),包括發(fā)生的時間,和相關(guān)方法,類名等。只捕捉特定的異常,而不是一般的異常。好: void ReadFromFile ( string fileN
15、ame ) try / read from file. catch (FileIOException ex) / log error. / re-throw exception depending on your case. throw; 不好: void ReadFromFile ( string fileName ) try / read from file. catch (Exception ex) / Catching general exception is bad we will never know whether it / was a file error or some other error. / Here you are hiding an exception. / In this case no one will ever know that an exception happened. return ; 不必在所有方法中捕捉一般異常。不管它,讓程序崩潰。這將幫助你在開發(fā)周期發(fā)現(xiàn)大多數(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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三年級上冊數(shù)學教案-7.4分數(shù)的初步認識(一)練習十一 |蘇教版
- 六年級上冊數(shù)學教案-6.1 比的認識(一)|北師大版
- 加法運算律教案2024-2025學年數(shù)學四年級上冊 西師大版
- 2025年轉(zhuǎn)讓有限公司股權(quán)合同
- 一致行動人協(xié)議(2025年版)-@-1
- 一年級上冊數(shù)學教案-總復習第1課時數(shù)與代數(shù)(1)∣北師大版
- 河南省三門峽市陜州區(qū)三年級英語下學期期中試題(人教PEP版-含答案)
- 《秋詞》歷年中考古詩欣賞試題匯編(截至2022年)
- 2025年河南省信陽市單招職業(yè)適應性測試題庫及答案1套
- 2025年湖南鐵路科技職業(yè)技術(shù)學院單招職業(yè)技能測試題庫參考答案
- 2023智能低壓配電箱技術(shù)條件
- 加油站地罐交接及容積表關(guān)系
- 電信寬帶注銷委托書
- 新教材人教版高中數(shù)學必修第二冊全冊教案
- 班(組)戰(zhàn)斗動作訓練教案
- 農(nóng)產(chǎn)品電商運營-完整全套課件
- 唐河縣泌陽凹陷郭橋天然堿礦產(chǎn)資源開采與生態(tài)修復方案
- 科研項目匯報ppt
- 建設工程項目法律風險防控培訓稿PPT講座
- “不作為、慢作為、亂作為”自查自糾報告范文(三篇)
- 上海市楊浦區(qū)2022屆初三中考二模英語試卷+答案
評論
0/150
提交評論