全國(guó)計(jì)算機(jī)等級(jí)考試二級(jí)VB考點(diǎn)分析之過程(2)

字號(hào):

考點(diǎn)8 傳值
    傳值就是通過值傳送實(shí)際參數(shù),即傳送實(shí)參的值而不是傳送它的地址。在這種情況下,系統(tǒng)扭需要傳送的變量復(fù)制到一個(gè)臨時(shí)的單元中,然后把該臨時(shí)單元的地址傳送給被調(diào)用的通用過程。由于通過過程沒有訪問變量(實(shí)參)的原始地址,因此不會(huì)改變?cè)瓉?lái)變量的值,所有的變化都是在變量的副本上進(jìn)行的。
    考點(diǎn)9 數(shù)組參數(shù)的傳送
    Visual Basic允許把數(shù)組作為實(shí)參傳送到過程中。用數(shù)組作為過程的參數(shù)時(shí),應(yīng)在數(shù)組名的后面加上一對(duì)括號(hào),以免與普通變量相混淆。
    除遵循參數(shù)傳送的一般規(guī)則外,還應(yīng)注意以下兩點(diǎn):
    (l)為了把一個(gè)數(shù)組的全部元素傳遞給一個(gè)過程,應(yīng)將數(shù)組名分別放入實(shí)參表和形參表中,并略去數(shù)組的上下界,但括號(hào)不能省略。
    (2)如果不需要把整個(gè)數(shù)組傳遞給通用過程,可以只傳遞指定的單個(gè)元素,這需要在數(shù)組名后面的括號(hào)中定上指定的元素下標(biāo)。
    6.4 可選參數(shù)和可變參數(shù)
    Visual Basic 6. 0提供了十分靈活和安全的參數(shù)傳送方式,允許使用可選參數(shù)和可變參數(shù)。在調(diào)用一個(gè)過程時(shí),可以向過程傳送可選的參數(shù)或者任意數(shù)量的參數(shù)。
    考點(diǎn)10 可選參數(shù)
    在調(diào)用一個(gè)過程時(shí),有時(shí)并不是每次都要傳遞所有的參數(shù)。有些參數(shù)的存在是為了提供某項(xiàng)功能,但這項(xiàng)功能不是每次調(diào)用該過程時(shí)都需要的或者在調(diào)用這個(gè)過程時(shí),某個(gè)參數(shù)在絕大部分時(shí)間內(nèi)都使用同一個(gè)值,對(duì)于其他的值只有在特殊的情況下才使用。
    使用可選參數(shù)時(shí)還應(yīng)注意兩點(diǎn):
    (1)如果某個(gè)參數(shù)被指定為可選參數(shù),那么它后面的參數(shù)必須都是可選的。
    (2)Optional關(guān)鍵字可以和ByVal關(guān)鍵字一起使用。
    考點(diǎn)11 可變參數(shù)
    在使用可變參數(shù)時(shí)應(yīng)注意以下5點(diǎn):
    (1)ParamArray關(guān)鍵字只能用于參數(shù)列表中的最后一個(gè)參數(shù)。
    (2)用ParamArray關(guān)鍵字聲明的參數(shù)數(shù)組只能是Variant類型。
    (3)ParamArray關(guān)鍵字不能和ByVal關(guān)鍵字,ByRef關(guān)鍵字以及Optional關(guān)鍵字一起使用。
    (4)如果使用ParamArray關(guān)鍵字聲明可變個(gè)數(shù)參數(shù),那么其他的參數(shù)都不能被聲明為可選的。
    (5)用ParamArray關(guān)鍵字聲明的參數(shù)數(shù)組,無(wú)論是否使用了Option Basel語(yǔ)句,它的下界總是0。
    6.5 對(duì)象參數(shù)
    考點(diǎn)12 對(duì)象參數(shù)
    和傳統(tǒng)的程序設(shè)計(jì)語(yǔ)言不同,Visual Basic允許用對(duì)象作為參數(shù),即窗體或控件作為通用過程的參數(shù)。在有些情況下,這可以簡(jiǎn)化程序設(shè)計(jì),提高效率。實(shí)際上,在Visual Basic中還可以向過程傳送對(duì)象,包括窗體和控件。
    對(duì)象作為參數(shù)與用其他數(shù)據(jù)類型作為參數(shù)的過程沒有什么區(qū)別,其格式為:
     Sub過程名(形式參數(shù)表)
     語(yǔ)句塊
     [Exit Sub]
     …
     End Sub
    “形式參數(shù)表”中的形參的類型通常為Control或Form注意,在調(diào)用含有對(duì)象的過程時(shí),對(duì)象只能通過傳地址方式傳送。因此在定義過程時(shí),不能在其參數(shù)前加關(guān)鍵字ByVal。
    6.6 局部?jī)?nèi)存分配
    考點(diǎn)13 局部?jī)?nèi)存分配
    有時(shí)候,在過程結(jié)束時(shí),可能不希望失去保存在局部變量中的值。如果把變量聲明為全局變量或模塊級(jí)變量,則可解決這個(gè)問題。但如果聲明的變量只在一個(gè)過程中使用,則這種方法并不好。為此,Visual Basic提供了一個(gè)Static語(yǔ)句,其格式為:
     Static變量表
    其中“變量表”的格式如下:
     變量[()][As類型][,變量[()][As類型]]…
    可以看出,Static語(yǔ)句的格式與Dim語(yǔ)句完全一樣,但Static語(yǔ)句只能出現(xiàn)在事件過程、Sub過程或Function過程中。在過程中的Static變量只有局部的作用域,即只在本過程中可見,但可以和模塊級(jí)變量一樣,即使過程結(jié)束后,其值仍能保留。
    在程序設(shè)計(jì)過程中,Static語(yǔ)句常用于以下兩種情況:
    (1)記錄一個(gè)事件被觸發(fā)的次數(shù),即程序運(yùn)行時(shí)事件發(fā)生的次數(shù)。
    (2)用于開關(guān)切換,即原來(lái)為開,將其改為關(guān),反之亦然。
    6.7 Shell函數(shù)
    考點(diǎn)14 shell函數(shù)
    在Visual Basic中不但可以調(diào)用通用過程,而且可以調(diào)用各種應(yīng)用程序。也就是說(shuō),凡是能在Windows下運(yùn)行的應(yīng)用程序,基本上都可以在Visual Basic中調(diào)用。這一功能通過Shell函數(shù)來(lái)實(shí)現(xiàn)。
    Shell函數(shù)的格式如下:
     Shell(命令字符串[,窗口類型])
    其中“命令字符串”是要執(zhí)行的應(yīng)用程序的文件名(包括路徑),它必須是可執(zhí)行文件,其擴(kuò)展名為.COM,.EXE,.BAT或.PIF,其他文件不能用Shell函數(shù)執(zhí)行。