如何利用VisualC#和C#語言特性

這篇文章主要介紹“如何利用Visual C#和C#語言特性”,在日常操作中,相信很多人在如何利用Visual C#和C#語言特性問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何利用Visual C#和C#語言特性”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

宜興ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

Visual C#和C#語言特性

我們在招聘會(huì)上經(jīng)??吹竭@樣的要求:“熟練使用XX語言,有X萬行源碼經(jīng)驗(yàn)”。確實(shí),編碼行數(shù)在一定程度上反映了編程水平。那么,我們?nèi)绾螐臄?shù)以百計(jì)、千計(jì)的源程序中快速得知究竟有多少行呢?利用Visual C#和C#語言特性,我們可以輕松實(shí)現(xiàn)對多種類型的源代碼的行數(shù)的統(tǒng)計(jì)工作。

一、需求分析

程序需要用戶輸入要過濾的源程序的拓展名,選擇要統(tǒng)計(jì)的目錄。獲得信息后,程序需要遍歷指定目錄(及其子目錄)和目錄下的文件,這一過程可以用 System.IO.DirectoryInfo類來實(shí)現(xiàn)。對于符合過濾標(biāo)準(zhǔn)的文件,我們用StreamReader類來打開它們,每次讀取一行并計(jì)數(shù),直到EOF為止,于是便得到了文件的行數(shù)。

二、數(shù)據(jù)結(jié)構(gòu)與算法

對于每個(gè)過濾到的文件,我們用一個(gè)結(jié)構(gòu)來儲(chǔ)存其信息。

struct codeInfo{  public long line; //儲(chǔ)存這個(gè)源程序的行數(shù)  public string ext; //這個(gè)文件的拓展名  public string filename; //文件名  public string fullname; //全路徑加文件名  //篇幅所限,省略了仿“構(gòu)造函數(shù)”。  }

對于用戶會(huì)輸入多少種拓展名,以及會(huì)有多少符合標(biāo)準(zhǔn)的文件,都是未知的。特別是對于每個(gè)文件都要?jiǎng)討B(tài)構(gòu)造一個(gè)codeInfo結(jié)構(gòu)體,考慮到這些,我們用ArrayList來動(dòng)態(tài)管理這些結(jié)構(gòu)體。

在算法上面,采用遞歸來實(shí)現(xiàn)無窮級(jí)目錄遍歷這一功能。

三、窗體設(shè)計(jì)

啟動(dòng)VisualStdio2005,新建一個(gè)基于C#的“Windows應(yīng)用程序項(xiàng)目”。在自動(dòng)創(chuàng)建的form1上添加如下控件:

控件類型及數(shù)量作用:
◆button兩個(gè) 點(diǎn)擊button1選擇文件夾,點(diǎn)擊button2開始統(tǒng)計(jì)
◆textBox一個(gè) 供輸入拓展名
◆label1五個(gè) 用于靜態(tài)提示的表示
◆listBox一個(gè) 顯示最終的分類統(tǒng)計(jì)結(jié)果
另外,如果想詳細(xì)的顯示每個(gè)統(tǒng)計(jì)的源文件的詳細(xì)情況,可以再添加dataGridView控件,利用它對每個(gè)文件的名稱、行數(shù)、路徑,進(jìn)行詳細(xì)顯示。篇幅所限,本文略去所有控件的屬性設(shè)置,詳見源程序。

我們可以新建一個(gè)Form專門停放dataGridView(更好的顯示效果)。這樣就牽扯到了窗體間如何傳遞codeList集合的問題。提示大家可以用this仿“指針”進(jìn)行傳遞。

本程序只有一個(gè)待統(tǒng)計(jì)目錄,有興趣的朋友可以考慮:如何設(shè)置多個(gè)待統(tǒng)計(jì)目錄(多一層foreach)。

另外,采用StreamReader獲取文件行數(shù)的方法再極端大的源碼樣本運(yùn)行時(shí)會(huì)略顯慢,大家可以考慮采取其它優(yōu)化的辦法,比如:利用統(tǒng)計(jì)學(xué)原理找到一個(gè)常數(shù)(平均每行字符數(shù)),然后用文件長度處以這個(gè)數(shù)以得到行數(shù),當(dāng)然,這樣會(huì)降低統(tǒng)計(jì)精度。

至此,我們已經(jīng)體驗(yàn)了Visual C#和C#語言特性的強(qiáng)大功能并成功實(shí)現(xiàn)了這一軟件。本程序在Visual C# 2005 WindowsXP SP2下調(diào)試通過。

到此,關(guān)于“如何利用Visual C#和C#語言特性”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

本文標(biāo)題:如何利用VisualC#和C#語言特性
當(dāng)前鏈接:http://www.muchs.cn/article34/jiojse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站電子商務(wù)、品牌網(wǎng)站制作、商城網(wǎng)站網(wǎng)頁設(shè)計(jì)公司、關(guān)鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化