Function過程

Function過程

計算機語句
Function過程是包含在Function和End Function語句之間的一組VBScript語句。Function過程與Sub過程類似,但是Function過程可以返回值。Function過程通過函數名返回一個值,這個值是在過程的語句中賦給函數名的。Function返回值的數據類型總是Variant。
    中文名:Function 過程 外文名: 所屬學科: 屬性:VBScript 語句

分類

Function過程是包含在Function和End Function語句之間的一組VBScript語句。

Function Celsius(fDegrees)

Celsius = (fDegrees - 32) * 5 / 9

End Function

可以在模塊、類或結構中定義Function過程。默認情況下此過程為Public,這意味着您可以從能夠訪問定義了此過程的模塊、類或結構的應用程序中的任何地方調用此過程。

Function過程能夠帶參數,如由調用代碼傳遞給它的常數、變量或表達式。

聲明語法

聲明Function過程的語法如下所示:

[ modifiers ] Function functionname [( parameterlist )] As returntype

' Statements of the Function procedure.

End Function

modifier可以指定與重載、重寫、共享和隐藏相關的訪問級别和信息。有關更多信息,請參見Function語句(Visual Basic)。

聲明每個參數的方法與聲明Sub過程的方法相同。

數據類型

每個Function過程都具有數據類型,就和每個變量都具有數據類型一樣。此數據類型由Function語句中的As子句指定,它确定函數返回給調用代碼的值的數據類型。下面的示例聲明演示了這一點。

複制代碼

Function yesterday() As Date

End Function

Function findSqrt(ByVal radicand As Single) As Single

End Function有關更多信息,請參見Function語句(Visual Basic)中的“各部分說明”。

返回值

Function過程發送回調用代碼的值稱為它的“返回值”。此過程使用以下兩種方式之一返回此值:

它在過程的一個或多個語句中給自己的函數名賦值。在執行Exit Function 或 End Function語句之前,控制不會返回調用程序。下面的示例演示這一點。

Function functionname [( parameterlist )] As returntype

' The following statement does not transfer control back to the calling code.

functionname = expression

' When control returns to the calling code, expression is the return value.

End Function

它使用Return語句指定返回值,并直接将控制返回調用程序。下面的示例演示這一點。

Function functionname [( parameterlist )] As returntype

' The following statement immediately transfers control back to the calling code and returns the value of expression .

Return expression

End Function

将返回值分配給函數名的優點是,直到控制遇到Exit Function或End Function語句時才從過程返回控制。這樣就可以先分配一個初步的值,以後如有必要再進行調整。

有關更多信息,請參見Function語句(Visual Basic)中的“返回值”。

返回數組

如果Function過程返回數組數據類型,則不能在函數内部訪問數組的各個元素。如果試圖這樣做,編譯器會将它解釋為對過程的遞歸調用。下面的示例演示這一點。

Function allOnes(ByVal n As Integer) As Integer()

For i As Integer = 1 To n - 1

' The following statement generates a COMPILER ERROR .

allOnes(i) = 1

Next i

' The following statement generates a COMPILER ERROR .

Return allOnes()

End Function

在前面的示例中,編譯器将嘗試的賦值allOnes(i)=1解釋為對賦值語句左邊的allOnes的調用。它将嘗試的Return allOnes()解釋為沒有參數的調用。兩個語句都将生成編譯器錯誤。

調用語法

調用Function過程的方法是将其名稱和參數放在賦值語句的右邊或表達式中。必須提供所有非可選參數的值,并且必須用括号将參數列表括起來。如果未提供任何參數,則也可以選擇省略括号。

調用Function過程的語法如下所示:

lvalue = functionname [( argumentlist )]

If (( functionname [( argumentlist )] / 3) <= expression ) Then

當調用Function過程時,不必使用它的返回值。如果不使用它的返回值,将執行函數的所有操作,而忽略返回值。通常使用此方式調用MsgBox。

聲明與調用闡釋

下面的Function過程通過給定的直角三角形的兩條直角邊計算該三角形的最長邊(即斜邊)。

Visual Basic複制代碼Function hypotenuse(ByVal side1 As Single, ByVal side2 As Single) As Single

Return Math.Sqrt((side1 ^ 2) + (side2 ^ 2))

End Function

下面的示例演示對hypotenuse的典型調用。

Visual Basic複制代碼Dim testLength, testHypotenuse As Single

testHypotenuse = hypotenuse(testLength, 10.7)

相關詞條

相關搜索

其它詞條