日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

VB Function語(yǔ)句...

 悟靜 2009-07-20

聲明 Function 過(guò)程的名稱,參數(shù)以及構(gòu)成其主體的代碼。

語(yǔ)法

[Public | Private | Friend] [Static] Function name [(arglist)] [As type]
[statements]
[name = expression]
[Exit Function]
[statements]
[name = expression]

End Function

Function 語(yǔ)句的語(yǔ)法包含下面部分:

部分 描述
Public 可選的。表示所有模塊的所有其它過(guò)程都可訪問(wèn)這個(gè) Function 過(guò)程。如果是在包含 Option Private 的模塊中使用,則這個(gè)過(guò)程在該工程外是不可使用的。
Private 可選的。表示只有包含其聲明的模塊的其它過(guò)程可以訪問(wèn)該 Function 過(guò)程。
Friend 可選的。只能在類模塊中使用。表示該 Function 過(guò)程在整個(gè)工程中都是可見(jiàn)的,但對(duì)于對(duì)象實(shí)例的控制者是不可見(jiàn)的。
Static 可選的。表示在調(diào)用之間將保留 Function 過(guò)程的局部變量值。Static 屬性對(duì)在該 Function 外聲明的變量不會(huì)產(chǎn)生影響,即使過(guò)程中也使用了這些變量。
name 必需的。Function 的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。
arglist 可選的。代表在調(diào)用時(shí)要傳遞給 Function 過(guò)程的參數(shù)變量列表。多個(gè)變量應(yīng)用逗號(hào)隔開(kāi)。
type 可選的。Function 過(guò)程的返回值的數(shù)據(jù)類型,可以是 Byte、布爾、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(除定長(zhǎng))、Object、Variant或任何用戶定義類型。
statements 可選的。在 Function 過(guò)程中執(zhí)行的任何語(yǔ)句組。
expression 可選的。Function 的返回值。

其中的 arglist 參數(shù)的語(yǔ)法以及語(yǔ)法各個(gè)部分如下:

[Optional] [ByVal | ByRef] [ParamArray] varname[( )] [As type] [= defaultvalue]

部分 描述
Optional 可選的。表示參數(shù)不是必需的。如果使用了該選項(xiàng),則 arglist 中的后續(xù)參數(shù)都必須是可選的,而且必須都使用 Optional 關(guān)鍵字聲明。如果使用了 ParamArray,則任何參數(shù)都不能使用 Optional 聲明。
ByVal 可選的。表示該參數(shù)按值傳遞。
ByRef 可選的。表示該參數(shù)按地址傳遞。ByRef 是 Visual Basic 的缺省選項(xiàng)。
ParamArray 可選的。只用于 arglist 的最后一個(gè)參數(shù),指明最后這個(gè)參數(shù)是一個(gè) Variant 元素的 Optional 數(shù)組。使用 ParamArray 關(guān)鍵字可以提供任意數(shù)目的參數(shù)。ParamArray 關(guān)鍵字不能與 ByVal,ByRef,或 Optional 一起使用。
varname 必需的。代表參數(shù)的變量的名稱;遵循標(biāo)準(zhǔn)的變量命名約定。
type 可選的。傳遞給該過(guò)程的參數(shù)的數(shù)據(jù)類型;可以是 Byte、Boolean、Integer、Long、Currency、Single、Double、Decimal(目前尚不支持)、Date、String(只支持變長(zhǎng))、Object Variant。如果參數(shù)不是 Optional,則也可以是用戶定義類型,或?qū)ο箢愋汀?/td>
defaultvalue 可選的。任何常數(shù)或常數(shù)表達(dá)式。只對(duì)于 Optional 參數(shù)時(shí)是合法的。如果類型為 Object,則顯式缺省值只能是 Nothing。

說(shuō)明

如果沒(méi)有使用 Public、Private Friend 顯式指定,則 Function 過(guò)程缺省為公用。如果沒(méi)有使用 Static,則局部變量的值在調(diào)用之后不會(huì)保留。Friend 關(guān)鍵字只能在類模塊中使用。但 Friend 過(guò)程可以被工程的任何模塊中的過(guò)程訪問(wèn)。Friend 過(guò)程不會(huì)在其父類的類型庫(kù)中出現(xiàn),且 Friend 過(guò)程不能被后期綁定。

注意 Function 過(guò)程可以是遞歸的;也就是說(shuō),該過(guò)程可以調(diào)用自己來(lái)完成某個(gè)特定的任務(wù)。不過(guò),遞歸可能會(huì)導(dǎo)致堆棧上溢。通常 Static 關(guān)鍵字和遞歸的 Function 過(guò)程不在一起使用。

所有的可執(zhí)行代碼都必須屬于某個(gè)過(guò)程。不能在另外的 Function、Sub Property 過(guò)程中定義 Function 過(guò)程。

Exit Function 語(yǔ)句使執(zhí)行立即從一個(gè) Function 過(guò)程中退出。程序接著從調(diào)用該 Function 過(guò)程的語(yǔ)句之后的語(yǔ)句執(zhí)行。在 Function 過(guò)程的任何位置都可以有 Exit Function 語(yǔ)句。

 Function 過(guò)程與 Sub 過(guò)程的相似之處是: Function 過(guò)程是一個(gè)可以獲取參數(shù),執(zhí)行一系列語(yǔ)句,以及改變其參數(shù)值的獨(dú)立過(guò)程,而與過(guò)程不同的是:當(dāng)要使用該函數(shù)的返回值時(shí),可以在表達(dá)式的右邊使用 Function 過(guò)程,這與內(nèi)部函數(shù),諸如 Sqr、CosChr 的使用方式一樣。

在表達(dá)式中,可以通過(guò)使用函數(shù)名,并在其后用圓括號(hào)給出相應(yīng)的參數(shù)列表來(lái)調(diào)用一個(gè) Function 過(guò)程。請(qǐng)參閱 Call 語(yǔ)句關(guān)于如何調(diào)用 Function 過(guò)程的詳細(xì)說(shuō)明。

要從函數(shù)返回一個(gè)值,只需將該值賦給函數(shù)名。在過(guò)程的任意位置都可以出現(xiàn)這種賦值。如果沒(méi)有對(duì) name 賦值,則過(guò)程將返回一個(gè)缺省值:數(shù)值函數(shù)返回 0,字符串函數(shù)返回一個(gè)零長(zhǎng)度字符串 (""),Variant 函數(shù)則返回 Empty。如果在返回對(duì)象引用的 Function 過(guò)程中沒(méi)有將對(duì)象引用賦給 name (通過(guò) Set),則函數(shù)返回 Nothing。

下面的示例說(shuō)明如何給一個(gè)名為 BinarySearch 的函數(shù)賦返回值。在這個(gè)示例中,將 False 賦給了該函數(shù)名,表示沒(méi)有找到某個(gè)值。

Function BinarySearch(. . .) As Boolean. . .   '值未找到,返回一個(gè) False 值。   If lower > upper Then      BinarySearch = False      Exit Function   End If. . .End Function

Function 過(guò)程中使用的變量分為兩類:一類是在過(guò)程內(nèi)顯式聲明的,另一類則不是。在過(guò)程內(nèi)顯式聲明的變量(使用 Dim 或等效方法)都是局部變量。對(duì)于那些沒(méi)有在過(guò)程中顯式聲明的變量,除非它們?cè)谠撨^(guò)程外更高級(jí)別的位置有顯示地聲明,否則也是局部的。

注意 過(guò)程可以使用沒(méi)有在過(guò)程內(nèi)顯式聲明的變量,但只要有任何在模塊級(jí)別中定義的名稱與之相同,就會(huì)產(chǎn)生名稱沖突。如果過(guò)程中使用的未聲明的變量與另一個(gè)過(guò)程,常數(shù),或變量的名稱相同,則會(huì)認(rèn)為過(guò)程使用的是模塊級(jí)的名稱。顯式聲明變量就可以避免這類沖突??梢允褂?Option Explicit 語(yǔ)句來(lái)強(qiáng)制顯式聲明變量。

注意 Visual Basic 可能會(huì)重新安排數(shù)學(xué)表達(dá)式以提高內(nèi)部效率。若 Function 過(guò)程會(huì)改變某個(gè)數(shù)學(xué)表達(dá)式中變量的值,則應(yīng)避免在此表達(dá)式中使用該函數(shù)。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多