第九章
一、Sub過(guò)程
(一)建立Sub過(guò)程
通用Sub過(guò)程的結(jié)構(gòu)與前面多次見過(guò)的事件過(guò)程的結(jié)構(gòu)類似。一般格式如下:[Static][Private][Public]Sub過(guò)程名[(參數(shù)表列)]
語(yǔ)句塊
[Exit Sub]
[語(yǔ)句塊]
End Sub
(二)調(diào)用Sub過(guò)程
調(diào)用引起過(guò)程的執(zhí)行。也就是說(shuō),要執(zhí)行一個(gè)過(guò)程,必須調(diào)用該過(guò)程。
Sub過(guò)程的調(diào)用有兩種方式,一種是把過(guò)程的名字放在一個(gè)Call語(yǔ)句中,一種是把過(guò)程名作為一個(gè)語(yǔ)句來(lái)使用。
1.用Call語(yǔ)句調(diào)用Sub過(guò)程
格式:Call過(guò)程名[(實(shí)際參數(shù))]
2.把過(guò)程名作為一個(gè)語(yǔ)句來(lái)使用
在調(diào)用Sub過(guò)程時(shí),如果省略關(guān)鍵字Call,就成為調(diào)用Sub過(guò)程的第二種方式。與第一種方式相比,它有兩點(diǎn)不同:
(1)去掉關(guān)鍵字Call;
(2)去掉“實(shí)際參數(shù)”的括號(hào)。
(三)通用過(guò)程與事件過(guò)程
[Private|Public]Sub控件名事件名(參數(shù)表) 語(yǔ)句組End Sub
窗體事件過(guò)程的一般格式為:
[Private|Public]Sub Form事件名(參數(shù)表) 語(yǔ)句組End Sub
二、Function過(guò)程
(一)建立Function過(guò)程
Function過(guò)程定義的格式如下:[Static][Private][Public]Function過(guò)程名[(參數(shù)表列)][As類型] [語(yǔ)句塊]
[過(guò)程名=表達(dá)式] [Exit Function] [語(yǔ)句塊] End Function
(二)調(diào)用Function過(guò)程
Function過(guò)程的調(diào)用比較簡(jiǎn)單,因?yàn)榭梢韵袷褂肰isual Basic內(nèi)部函數(shù)一樣來(lái)調(diào)用Function過(guò)程。實(shí)際上,由于Function過(guò)程能返回一個(gè)值,因此完全可以把它看成是一個(gè)函數(shù),它與內(nèi)部函數(shù)(如Sqr、Str$、Chr$等)沒有什么區(qū)別,只不過(guò)內(nèi)部函數(shù)由語(yǔ)言系統(tǒng)提供,而Function過(guò)程由用戶自己定義。
三、參數(shù)傳送
在Visual Basic中,通常把形式參數(shù)叫做“參數(shù)”,而把實(shí)際參數(shù)叫做“自變量”。
(一)形參與實(shí)參
Examda提示: 形參是在Sub、Function過(guò)程的定義中出現(xiàn)的變量名,實(shí)參則是在調(diào)用Sub或Function過(guò)程時(shí)傳送給Sub或Function過(guò)程的常數(shù)、變量、表達(dá)式或數(shù)組。在Visual Basic中,可以通過(guò)兩種方式傳送參數(shù),即按位置傳送和指名傳送。
(二)引用
在Visual Basic中,參數(shù)通過(guò)兩種方式傳送,即傳地址和傳值,其中傳地址習(xí)慣上稱為引用。在默認(rèn)情況下,變量(簡(jiǎn)單變量、數(shù)組或數(shù)組元素以及記錄)都是通過(guò)“引用”傳送給Sub或Function過(guò)程。在這種情況下,可以通過(guò)改變過(guò)程中相應(yīng)的參數(shù)來(lái)改變?cè)撟兞康闹。這意味著,當(dāng)通過(guò)引用來(lái)傳送實(shí)參時(shí),可以改變傳送給過(guò)程的變量的值。
(三)傳值
傳值就是通過(guò)值傳送實(shí)際參數(shù),即傳送實(shí)參的值而不是傳送它的地址。在這種情況下,系統(tǒng)把需要傳送的變量復(fù)制到一個(gè)臨時(shí)單元中,然后把該臨時(shí)單元的地址傳送給被調(diào)用的通用過(guò)程。由于通用過(guò)程沒有訪問(wèn)變量(實(shí)參)的原始地址,因而不會(huì)改變?cè)瓉?lái)變量的值,所有的變化都是在變量的副本上進(jìn)行的。
在Visual Basic中,傳值方式通過(guò)關(guān)鍵字ByVal來(lái)實(shí)現(xiàn)。也就是說(shuō),在定義通用過(guò)程時(shí),如果形參前面的關(guān)鍵字ByVal,則該參數(shù)用傳值方式傳送,否則用引用(即傳地址)方式傳送。
(四)數(shù)組參數(shù)的傳送
Visual Basic允許把數(shù)組作為實(shí)參傳送到過(guò)程中。
用數(shù)組作為過(guò)程的參數(shù)時(shí),應(yīng)在數(shù)組名的后面加上一對(duì)括號(hào),以免與普通變量相混淆。
四、可選參數(shù)與可變參數(shù)
Visual Basic6.0提供了十分靈活和安全的參數(shù)傳送方式,允許使用可選參數(shù)和可變參數(shù)。在調(diào)用一個(gè)過(guò)程時(shí),可以向過(guò)程傳送可選的參數(shù)或者任意數(shù)量的參數(shù)。
五、對(duì)象參數(shù)
Examda提示: 對(duì)象作為參數(shù)與用其他數(shù)據(jù)類型作為參數(shù)的過(guò)程沒有什么區(qū)別,其格式為:Sub過(guò)程名(形參表) 語(yǔ)句塊 [Exit Sub] ……End Sub
“形參表”中形參的類型通常為Control或Form。注意,在調(diào)用含有對(duì)象的過(guò)程時(shí),對(duì)象只能通過(guò)傳地址方式傳送。因此在定義過(guò)程時(shí),不能在其參數(shù)前加關(guān)鍵字ByVal。
六、局部?jī)?nèi)存分配
有時(shí)候,在過(guò)程結(jié)束時(shí),可能不希望失去保存在局部變量中的值。如果把變量聲明為全局變量或模塊級(jí)變量,則可解決這個(gè)問(wèn)題。但如果聲明的變量只在一個(gè)過(guò)程中使用,則這種方法并不好。為此,Visual Basic提供了一個(gè)Static語(yǔ)句,其格式如下:
Static變量表
其中“變量表”的格式如下:
變量[()][As類型][,變量[()][As類型]]……
七、Shell函數(shù)
Shell函數(shù)的格式如下:
Shell(命令字符串[,窗口類型])
相關(guān)推薦:北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |