




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、副程式與函式,副程式 (Sub routine),請注意,副程式需要有一個名字,命名規(guī)則與變數(shù)相同。,叫用.NET本身提供的系統(tǒng)函式,來取得時間,顯示目前的時間。,呼叫副程式,利用Call指令來呼叫剛才建立好的副程式,Practice (練習(xí)),Sub Main() for i as integer =1 to 10 console.writeline(i) Next Pause() End Sub Sub Pause() console.writeline() console.write(“=程式暫停中,請按任意鍵繼續(xù) console.readkey() End Sub,Function (
2、函式),這邊設(shè)定的叫做參數(shù),Function也要有名字,Return指令用來結(jié)束Function並把值傳回,請?zhí)貏e注意,F(xiàn)unction需要指定回傳值的型別,傳回值,副程式與函式最大的不同 函式有傳回值,Parameters (參數(shù)傳遞),參數(shù)一,參數(shù)二,參數(shù)傳遞方式,呼叫函式,宣告一個變數(shù)來接收函式的回傳值,Example,練習(xí)範(fàn)例CH04-03 建立一個函式,讓使用者輸入圓的的半徑,該函式就傳回圓的面積 提示:假設(shè)半徑為 r,則圓面積的計算公式為:r*r*3.14159 建立一個函式,讓使用者輸入矩形的長跟寬,該函式就傳回矩形的面積,參數(shù)傳遞方式比較,ByVal v.s. ByRef Ca
3、ll by value (傳值呼叫) 傳遞變數(shù)的值 Call by reference (傳址呼叫) 傳遞變數(shù)在記憶體位置,範(fàn)例,主程式呼叫Swap時,以ByRef方式來傳入a,b兩個參數(shù),請注意,以ByRef傳入的n1,n2參數(shù),就是主程式中的a,b,不只是接收a,b的值,是完全等於a,b,絃外之音,Call by reference 另類的回傳值,Bubble Sort (泡沫排序法),Example,Sub Main() Dim a() As Integer = 4, 15, 23, 1, 57, 21, 722, 3, 6, 89, 24, 5, 62 排序 Sort(a) 顯示 Fo
4、r i As Integer = 0 To UBound(a) Console.Write(a(i) & ,) Next console.writekey() End Sub 排序 Sub Sort(ByRef arr() As Integer) For x As Integer = 0 To UBound(arr) For y As Integer = x + 1 To UBound(arr) If arr(x) arr(y) Then Swap(arr(x), arr(y) Next Next End Sub,替換兩個變數(shù)中的值 Sub Swap(ByRef n1 As Integer,
5、ByRef n2 As Integer) Dim c As Integer c = n1 n1 = n2 n2 = c End Sub ,Optional,以此關(guān)鍵字修飾的參數(shù)被定義後,主程式在呼叫該函數(shù)時,可以省略此參數(shù),因為Optional修飾字的關(guān)係,就算在呼叫add這個Function時,沒有填入?yún)?shù)b值也不會有錯誤訊息,變數(shù)的存留期與存取範(fàn)圍,存留期 變數(shù)在記憶體當(dāng)中佔有的時間,從什麼時候開始到什麼時候結(jié)束 存取範(fàn)圍 程式碼中可以存取特定變數(shù)的範(fàn)圍 Global(全域變數(shù)) v.s. Local(區(qū)域變數(shù)),請注意這個變數(shù)宣告在主程式Sub Main()的外面,稱之為全域變數(shù)。,這個
6、變數(shù)宣告在Function GetUserName()裡面,稱之為區(qū)域變數(shù)。,這邊用到了第2行所定義的全域變數(shù)。,何時需要定義一個全域變數(shù)呢?假設(shè)這個變數(shù)需要被所有函式存取,則我們會將其定義為全域變數(shù)。 區(qū)域變數(shù)則比較簡單,假設(shè)某個變數(shù)僅會在一定的範(fàn)圍內(nèi)存取,我們就會設(shè)計成區(qū)域變數(shù)。,Do 和 Loop區(qū)域 For Each 和 Next區(qū)域 If 和 End If區(qū)域 Select 和 End Select區(qū)域 SyncLock 和 End SyncLock Try 和 End Try區(qū)域 While 和 End While區(qū)域 Sub和End Sub區(qū)域 Function和End Func
7、tion區(qū)域,以Static關(guān)鍵字宣告的變數(shù)是靜態(tài)變數(shù),其值會被保留,不會隨著所在的副程式(或函式)的結(jié)束而消失,以Static關(guān)鍵字宣告的變數(shù)是靜態(tài)變數(shù),其值會被保留,不會隨著所在的副程式(或函式)的結(jié)束而消失,Static (靜態(tài)變數(shù)),前面我們介紹過怎麼自己定義副程式和函式,但是其實在.NET Framework當(dāng)中,已經(jīng)有內(nèi)建相當(dāng)豐富的函式庫,並且依照不同的功能區(qū)分。 例如當(dāng)我們撰寫程式時,需要使用到與數(shù)學(xué)函式有關(guān)的部份,可以在程式碼輸入?yún)^(qū)鍵入System.Math.:,.Net Class Library,類別庫包羅萬象,無法在書籍中完全加以介紹,但是透過命名空間,對於類別庫的使用,
8、則可以有個概略性的思考方式。 例如在.NET Framework當(dāng)中,與數(shù)學(xué)有關(guān)的系統(tǒng)函式都會位於System.Math命名空間底下,因此如果要尋找某些特定的函式,可以從命名空間開始思考。,命名空間是為了區(qū)分龐大的函式庫所採用的方法,因為.NET提供了一整套複雜且龐大的內(nèi)建函式,如果不加以分門別類,上萬個各式各樣的內(nèi)建函式將會難以分辨。因此,我們可以透過命名空間來對函式庫加以分類,例如Systm.Math.Sqrt()這個寫法當(dāng)中,Sqrt是函式名稱,而System和Math則是命名空間。 這也表示了,命名空間下面還可以有命名空間,如此一來,也有另一個好處,就是即使函式名稱相同,我們也可以冠上
9、不同的命名空間來加以區(qū)分。例如,假設(shè)我們自己撰寫了一個同名的Sqrt函式,我們可以在這個函式上面冠上不同的命名空間,例如StudyHost.Math.Sqrt,以區(qū)別不同的函式。,除了透過System命名空間來存取.NET提供的內(nèi)建函式之外,在Visual Basic 2005當(dāng)中有一個捷徑,就是My Class。 My Class機(jī)制透過簡單的My關(guān)鍵字,讓程式設(shè)計師可以輕鬆的引用.NET Framework的功能。我們只需要在程式碼撰寫時,鍵入My.系統(tǒng)就會跳出可供使用的功能。例如My.Computer表示所有與我的電腦相關(guān)的功能:,My Class Library,模組是一群副程式的集合
10、,當(dāng)我們在主程式中建立了很多副程式(或函式)之後,可以把功能相似的副程式歸類為一個模組,如此一來,開發(fā)人員在使用時也比較方便,不需要到處尋找程式碼片段。 同時,將主程式碼當(dāng)中的功能切割成副程式,再歸類到一個模組檔案中,更可以讓開發(fā)程式的時候方便管理,後續(xù)的維護(hù)也會更加便利。特別是在多人同時開發(fā)一個專案的時候,這樣的好處會更加的明顯,這種將程式碼建立的更加結(jié)構(gòu)的方式我們稱之為模組化。,何謂模組(Module),如何建立一個模組,如何建立一個模組,把需要用到的函式(或副程序)寫進(jìn)模組裡,這樣在使用時就可以用簡潔的程式碼來呼叫這些函式(或副程序) ,一方面精簡主程式,另一方面可以讓程式容易維護(hù)! 更
11、重要的是,透過模組來撰寫應(yīng)用程式,當(dāng)我們把程式分割成獨立的幾個功能,且使用模組來設(shè)計之後,程式碼可以同時給多個開發(fā)人員一起開發(fā),加快開發(fā)時程。此外,在這次專案中,建構(gòu)好的模組,也可以在下次專案中重新拿出來使用,而不需要再撰寫一樣(或相似)的程式碼。,模組的功能,只需要打入模組名稱newmodule.VS2005就會帶出該模組中可用的函式(剛才我們建了一個Pause)出來給我們選擇。,主程式當(dāng)中,可以這麼使用它:,在剛才建立好的模組檔案中,設(shè)計一個Sub,模組的使用,請在函式或副程式上頭,連續(xù)打三個,就會自動出現(xiàn)這串文字,請在和中,手動入輸入註解,函式自動註解功能,模組中函式的可用範(fàn)圍,當(dāng)我們將
12、模組A中的Sub C()加了Private關(guān)鍵字之後,我們的主程式Module1當(dāng)中的Sub Main(),想要叫用模組A的Sub C()時,就不可行了:,當(dāng)Sub C()加上了Private關(guān)鍵字之後,模組內(nèi)的Sub B()和Sub D()都可以呼叫Sub C(),但是模組A之外的其他程式碼,則無法透過A.C()的方式來呼叫模組內(nèi)的Sub C():,請撰寫一個函式,名稱為GetNumber,接收的參數(shù)為msg(String型別),並且回傳Integer型別的回傳值,必須具備顯示Msg並且要求使用者輸入數(shù)字的功能,以取代範(fàn)例CH04-03程式碼中的4-5行和6-7行,讓範(fàn)例CH04-03的主程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025至2030中國腹腔鏡壓榨機(jī)行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國脫水冷凍水果行業(yè)發(fā)展趨勢分析與未來投資戰(zhàn)略咨詢研究報告
- 2025至2030中國膠合板行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國聚醚消泡劑行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 2025至2030中國聚光鏡行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- 基于大數(shù)據(jù)的營銷活動分析報告
- 2025至2030中國美甲行業(yè)市場發(fā)展現(xiàn)狀及發(fā)展趨勢與投資發(fā)展報告
- 2025至2030中國羊奶粉行業(yè)市場深度研究及發(fā)展前景投資可行性分析報告
- 2025至2030中國網(wǎng)絡(luò)動漫行業(yè)營銷模式與投資契機(jī)深度評估報告
- 2025至2030中國罐式集裝箱行業(yè)發(fā)展研究與產(chǎn)業(yè)戰(zhàn)略規(guī)劃分析評估報告
- 工會審計實務(wù)課件
- 預(yù)防艾滋病、梅毒和乙肝母嬰傳播相關(guān)報表、上報流程和要求
- 《鐵路技術(shù)管理規(guī)程》(普速鐵路部分)-14年新版
- 食用油儲存期品質(zhì)變化的太赫茲光譜無損識別
- 胎盤早剝預(yù)案演練腳本
- 五山文學(xué)全集第一卷
- 聚磷腈功能高分子材料的合成及應(yīng)用
- 中國鐵路總公司《鐵路技術(shù)管理規(guī)程》(高速鐵路部分)2014年7月
- 鈣加維生素Dppt課件(PPT 14頁)
- TRD深基坑止水帷幕施工方案(22頁)
- 企業(yè)組織架構(gòu)圖模板
評論
0/150
提交評論