歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > DOC文檔下載  

C#代碼規(guī)范(湖南大學(xué)).doc

  • 資源ID:9009782       資源大?。?span id="bfvrnlr" class="font-tahoma">97KB        全文頁數(shù):11頁
  • 資源格式: DOC        下載積分:9.9積分
快捷下載 游客一鍵下載
會員登錄下載
微信登錄下載
三方登錄下載: 微信開放平臺登錄 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要9.9積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號,方便查詢和重復(fù)下載(系統(tǒng)自動生成)
支付方式: 支付寶    微信支付   
驗(yàn)證碼:   換一換

 
賬號:
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請知曉。

C#代碼規(guī)范(湖南大學(xué)).doc

創(chuàng)新課程參考案例鐵路局計量管理系統(tǒng)C#代碼規(guī)范湖南大學(xué)軟件學(xué)院2007年8月文檔信息:文檔編號MMIS-03文檔名稱計量系統(tǒng)C#代碼規(guī)范文檔描述該文檔詳細(xì)定義了計量系統(tǒng)開發(fā)中的C#代碼編寫規(guī)范,本文檔是后續(xù)分模塊程序編碼的規(guī)范性文檔。VSS中文檔存放路徑$/學(xué)院/軟件開發(fā)部/計量系統(tǒng)/開發(fā)設(shè)計文檔負(fù)責(zé)人狀態(tài)定稿文檔變更記錄:時間修改人章節(jié)描述2007-05-29陳浩所有創(chuàng)建新文檔相關(guān)文檔:文檔路徑計量系統(tǒng)需求分析說明書$/學(xué)院/軟件開發(fā)部/計量系統(tǒng)/開發(fā)設(shè)計文檔計量系統(tǒng)功能說明書$/學(xué)院/軟件開發(fā)部/計量系統(tǒng)/開發(fā)設(shè)計文檔文檔確認(rèn)與評審記錄:審核人審核時間意見備注項(xiàng)目組2005-7-28評審?fù)ㄟ^用戶評審確認(rèn)目 錄1編程風(fēng)格41.1統(tǒng)一編程風(fēng)格的意義41.2變量命名規(guī)則41.3函數(shù)命名規(guī)則51.4類命名規(guī)則51.5常見語句書寫規(guī)則61.6注釋風(fēng)格72代碼組織73代碼優(yōu)化83.1代碼優(yōu)化的意義83.2函數(shù)內(nèi)的代碼優(yōu)化83.3類內(nèi)的代碼優(yōu)化93.4類之間的代碼優(yōu)化104調(diào)試技巧104.1編譯時的錯誤104.2運(yùn)行時的錯誤104.3C#常見問題111 編程風(fēng)格1.1 統(tǒng)一編程風(fēng)格的意義 增加開發(fā)過程代碼的強(qiáng)壯性、可讀性、易維護(hù)性 減少有經(jīng)驗(yàn)和無經(jīng)驗(yàn)開發(fā)人員編程所需的腦力工作 為軟件的良好維護(hù)性打下好的基礎(chǔ) 在項(xiàng)目范圍內(nèi)統(tǒng)一代碼風(fēng)格 通過人為以及自動的方式對最終軟件應(yīng)用質(zhì)量標(biāo)準(zhǔn) 使新的開發(fā)人員快速適應(yīng)項(xiàng)目氛圍 支持項(xiàng)目資源的復(fù)用:允許開發(fā)人員從一個項(xiàng)目區(qū)域(或子項(xiàng)目團(tuán)隊)移動到另一個,而不需要重新適應(yīng)新的子項(xiàng)目團(tuán)隊的氛圍 一個優(yōu)秀而且職業(yè)化的開發(fā)團(tuán)隊所必需的素質(zhì)1.2 變量命名規(guī)則 前綴(小寫字母加下劃線)表明變量的作用域,無前綴則表明是局部變量或函數(shù)的參數(shù)。如: m_xx表示是類的成員變量,控件變量例外 g_xx表示是全局變量,在C#中,也可以理解為在整個項(xiàng)目中都可能用到的靜態(tài)變量 c_xx或者XX表示是一個常量 用數(shù)據(jù)類型全稱中的關(guān)鍵字母代表特定的數(shù)據(jù)類型(一個或多個小寫字母),如下表。常用數(shù)據(jù)類型縮寫數(shù)據(jù)類型iintbboolstrstringccharffloatddoubleobobjectlblLabeltxtTextBoxbtnButtoncmbComboBoxmnuMainmenumnuItemMenuItemchkCheckBoxgrdDataGridtmTimerfrmFormpnlPanelgupGroupBoxtvTreeViewrdoRadioButtonlbListBoxtlbToolBardtDateTimecnConnectioncmdCommanddsDataSetdaDataAdapterdvDataViewdbTableDataTabledbReaderDataReaderparamParameterdbRowDataRowdbColDataColumn注:如果模塊中只有一個類實(shí)例對象,則可以只用簡寫。如Connection對象可以用cn來命名。1.3 函數(shù)命名規(guī)則 函數(shù)名用首字母大寫的英文單詞組合表示(如用動詞+名詞的方法),其中至少有一個動詞 應(yīng)該避免的命名方式 和繼承來的函數(shù)名一樣。即使函數(shù)的參數(shù)不一樣,也盡量不要這么做,除非想要重載它 只由一個動詞組成,如:Save、Update。改成如:SaveValue、UpdateDataSet則比較好 函數(shù)參數(shù)的命名規(guī)則 函數(shù)參數(shù)應(yīng)該具有自我描述性,應(yīng)該能夠做到見其名而知其意 用匈牙利命名法命名1.4 類命名規(guī)則 類的命名通常以父類的簡寫開頭。如:FrmXXX可看出該類從Form中繼承而來 類名中盡量不要出現(xiàn)下劃線 類變量的命名可以參照,如:FrmXXX frmXXX = new FrmXXX(),即首字母小寫即可1.5 常見語句書寫規(guī)則如下表所示。語句提倡的風(fēng)格ifif(condition)statements;elsestatements;forfor(initialization; condition; update)statements;foreachforeach(something in collection)statements;switchswitch()case .:break;case :break;default:whilewhile(.)statements;do-whiledostatements;while(condition);try-catchtrystatements;catch(Exception e)handle exception;同一代碼塊內(nèi)的不同邏輯塊之間應(yīng)空一行do statement1;do statement2;函數(shù)與函數(shù)之間至少空一行,但不超三行1.6 注釋風(fēng)格 注釋應(yīng)該正確、簡潔、有重點(diǎn) 應(yīng)該寫優(yōu)雅的、可讀性良好的代碼,而不是為玄妙、晦澀的代碼寫注釋 原則上應(yīng)盡量減少程序體內(nèi)代碼的注釋,應(yīng)該保持代碼本身的直接可讀性 函數(shù)的注釋,可以只對public或者重要的private函數(shù)進(jìn)行注解2 代碼組織代碼組織是對整個項(xiàng)目的代碼進(jìn)行整理,使之更加有序。實(shí)現(xiàn)類似功能的文件應(yīng)該放在同一個文件夾中或者同一個項(xiàng)目中。例如,可把整個項(xiàng)目分為以下幾個層次: SystemFramework層提供一些給其他公用的服務(wù),比如說系統(tǒng)日志、應(yīng)用程序配置、異常處理、調(diào)試類等讀取Web.config和*.exe.config一般都在這一層。 Common層把邏輯上的tables抽象成一些類,這些類一般從DataSet繼承,生成一些strong typed Dataset,類中不涉及任何數(shù)據(jù)庫操作。 DataAccess層這一層的類負(fù)責(zé)與數(shù)據(jù)庫的連接,以Common層對象為媒介讀取、更新、添加、刪除數(shù)據(jù)庫對象。為Bussiness層提供數(shù)據(jù)服務(wù)。 Bussiness Logic 層如果需要的話可以分為以下兩層,也可以合為一層。 Business Rule層包含各種商務(wù)邏輯和規(guī)則。 Business Faade層提供給UI層所有的系統(tǒng)接口,這一層抽象出了UI層所需要用到的功能。這一層的類可以通過繼承MarshalByRefObject類,支持Remoting,配置到專門的應(yīng)用程序服務(wù)器上。 UI層只調(diào)用Bussiness層和SystemFramework層的接口,實(shí)現(xiàn)用戶界面。包括: WinUI WebUI WebService(并不是用戶界面,但是邏輯上屬于這一層)3 代碼優(yōu)化3.1 代碼優(yōu)化的意義 僅僅對符合功能說明書的要求、能正確運(yùn)行的代碼進(jìn)行優(yōu)化是有意義的 代碼優(yōu)化能減少冗余代碼的數(shù)量,用更少的代碼來實(shí)現(xiàn)同樣的功能 提高代碼的內(nèi)聚程度,減少耦合程度 對代碼的抽象能提高代碼的重用度,對今后其他項(xiàng)目的進(jìn)度有非常重要的意義3.2 函數(shù)內(nèi)的代碼優(yōu)化 去掉從來沒有用到過的參數(shù) 始終進(jìn)行參數(shù)檢驗(yàn)。不要認(rèn)為只有我才會調(diào)用這個函數(shù),我能夠保證參數(shù)的有效性。事實(shí)上很多運(yùn)行錯誤就是沒有對參數(shù)進(jìn)行檢驗(yàn)。對于傳入了非法值的函數(shù)調(diào)用,可以返回一個對調(diào)用無意義的值(如:null,-1),或者干脆拋出一個異常 函數(shù)的參數(shù)不宜過多,如果實(shí)在是太多,可以考慮將這些參數(shù)封裝在一個類中,然后將這個類的某個實(shí)例作為參數(shù)傳入函數(shù) 如果函數(shù)從來不會修改某個參數(shù)的值,則應(yīng)該盡量將參數(shù)聲明為const 如果函數(shù)中用到的類成員變量或者其他全局變量可以用傳入?yún)?shù)的方式代替,則用參數(shù)代替,這樣可以減少該函數(shù)和外界的關(guān)系,提高內(nèi)聚 一個單一的函數(shù)的代碼量不宜過多。如果實(shí)在很多,則可以把它切分成小的函數(shù),例如長的switch語句是最容易切分的 單個函數(shù)中盡量避免相同的代碼,可以用條件語句或者抽取出來作為函數(shù)的方法消除這些冗余 盡量保持函數(shù)只有一個出口,即只有一處return語句,如: 原始代碼string GetControlText(int nIndex)if(ParameterValid() = false)return null;switch(nIndex)case 0:return txtValue1.Text;case 1:return txtValue2.Text;. 優(yōu)化過的代碼string GetControlText(int nIndex)string strReturnValue = null;if(ParameterValid() = true)switch(nIndex)case 0:strReturnValue = txtValue1.Text;break;case 1:strReturnValue = txtValue2.Text;break;.return strReturnValue;3.3 類內(nèi)的代碼優(yōu)化 只有類對外的接口才聲明為public 在類的成員函數(shù)中如果存在著相同的代碼,則將其抽取成為private的成員函數(shù),以減少代碼的冗余,保持在一個類中沒有相同的兩份代碼的副本 盡量減少成員函數(shù)之間的依賴,特別是對成員變量值的依賴3.4 類之間的代碼優(yōu)化 類應(yīng)該是一個實(shí)體,具有自己的數(shù)據(jù)和對這些數(shù)據(jù)的操作 把界面操作和數(shù)據(jù)處理分離在兩個類中是比較好的做法 對于不同類之間有相同代碼的情況,有以下幾種處理方法: 將相同的代碼抽象出來作為父類,其他的類從中繼承,由此來共享代碼 將相同的代碼抽象出來作為一個新類,其他類中聲明一個該類的變量,由此來共享代碼這兩種方法各有利弊,前種方法比較適于當(dāng)共享代碼在調(diào)用之前必須做特殊的初始化,而這些初始化可能很難用函數(shù)調(diào)用來完成,這時父類的初始化代碼中可以加入一個虛擬函數(shù),所有的子類都重載該函數(shù),做特定的初始化;后種方法可以封裝得很徹底,只暴露出對外的接口,和其他類的耦合程度比較小 任何重復(fù)的代碼都可以抽取出來,不僅僅是對數(shù)據(jù)進(jìn)行處理的代碼,界面代碼同樣可以抽取出來 如果許多類都有做類似事情的函數(shù),名稱相同、內(nèi)部具體的操作不同,這時候可以將這些函數(shù)提取出來作為一個接口。其他類都從中繼承,然后根據(jù)自己的要求來實(shí)現(xiàn)之4 調(diào)試技巧4.1 編譯時的錯誤 始終在“輸出”窗口中看程序編譯的輸出,“任務(wù)列表”窗口中經(jīng)常會遺留以前編譯后留下來的消息 認(rèn)真查看編譯輸出的錯誤消息,掌握正確的錯誤地點(diǎn)和信息 當(dāng)碰到莫名其妙的編譯時的錯誤應(yīng)1) 重新編譯整個項(xiàng)目或者解決方案。2) 關(guān)閉Visual Studio.NET,然后再打開。3) 重新啟動計算機(jī)。4) 保證編譯出來的程序不在運(yùn)行中或者所有的輸出文件的屬性都是可寫的。4.2 運(yùn)行時的錯誤 首先要讀取異常信息,猜測大概的發(fā)生地和發(fā)生原因 仔細(xì)讀發(fā)生異常處源代碼 在相應(yīng)處設(shè)置斷點(diǎn),然后單步運(yùn)行 如果還是找不出錯誤,可以請同事幫忙。當(dāng)著同事的面講解自己的源代碼,旁觀者看得最清 配置問題和數(shù)據(jù)庫中數(shù)據(jù)的錯誤也會導(dǎo)致運(yùn)行時的錯誤4.3 C#常見問題 C#中控件的消息處理是立即的。也就是說,如果對某個控件的某個消息寫了消息處理函數(shù),然后假如當(dāng)程序中某處的代碼A引發(fā)了該消息時,程序流程會立即跳轉(zhuǎn)到該消息的消息函數(shù)中去,如果這時消息函數(shù)中發(fā)生異常,即使代碼A處于異常塊中,該異常也無法捕獲。所以如果出現(xiàn)在給控件的某個屬性賦值后發(fā)生異常的情況,則請找一下是否已經(jīng)對該控件的該屬性寫了消息函數(shù)(別忘了在父類也許會有),如果有的話,則應(yīng)在這個消息處理函數(shù)中也加上斷點(diǎn) 注意集成環(huán)境中窗體設(shè)計器的副作用。對于處在InitializeComponent中的代碼,如果需要做修改,盡量先將其搬到函數(shù)外面來,否則,不能保證修改過的代碼不被集成環(huán)境改回來或者刪掉 C#中很多異常都是由于強(qiáng)制轉(zhuǎn)換產(chǎn)生的,所以對強(qiáng)制轉(zhuǎn)換一定要放在異常處理塊中

注意事項(xiàng)

本文(C#代碼規(guī)范(湖南大學(xué)).doc)為本站會員(jian****018)主動上傳,裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!