程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> vb變量、常數和數據類型及過程概述(十)

vb變量、常數和數據類型及過程概述(十)

編輯:VB6

標准模塊中的過程
如果過程名是唯一的,則不必在調用時加模塊名。無論是在模塊內,還是在模塊外調用,結果總會引用這個唯一過程。如果過程僅出現在一個地方,這個過程就是唯一的。
如果兩個以上的模塊都包含同名的過程,那就有必要用模塊名來限定了。在同一模塊內調用一個公共過程就會運行該模塊內的過程。例如,對於Module1 和 Module2 中名為 CommonName 的過程,從 Module2 中調用CommonName 則運行 Module2 中的CommonName過程,而不是 Module1中的 CommonName 過程。
從其它模塊調用公共過程名時必須指定那個模塊。例如,若在 Module1 中調用 Module2 中的 CommonName 過程,要用下面的語句:
Module2.CommonName (arguments)

向過程傳遞參數
過程中的代碼通常需要某些關於程序狀態的信息才能完成它的工作。信息包括在調用過程時傳遞到過程內的變量。當將變量傳遞到過程時,稱變量為參數。

參數的數據類型
過程的參數被缺省為具有 Variant 數據類型。不過,也可以聲明參數為其它數據類型。例如,下面的函數接受一個字符串和一個整數:
Function WhatsForLunch(WeekDay As String, Hour _
As Integer) As String 
'根據星期幾和時間,返回午餐菜單。
If WeekDay = "Friday" then
WhatsForLunch = "Fish"
Else
WhatsForLunch = "Chicken"
End If
If Hour > 4 Then WhatsForLunch = "Too late"
End Function
詳細信息 關於 Visual Basic 的數據類型,請參閱本章前面部分。也可以在語言參考中查找指定的數據類型。

按值傳遞參數按值傳遞參數時,傳遞的只是變量的副本。如果過程改變了這個值,則所作變動只影響副本而不會影響變量本身。用 ByVal 關鍵字指出參數是按值來傳遞的。
例如:
Sub PostAccounts (ByVal intAcctNum as Integer)
.
. '這裡放語句。
.End Sub

按地址傳遞參數
按地址傳遞參數使過程用變量的內存地址去訪問實際變量的內容。結果,將變量傳遞給過程時,通過過程可永遠改變變量值。按地址傳遞參數在Visual Basic 中是缺省的。
如果給按地址傳遞參數指定數據類型,就必須將這種類型的值傳給參數。可以給參數傳遞一個表達式,而不是數據類型。Visual Basic 計算表達式,如果可能的話,還會按要求的類型將值傳遞給參數。
把變量轉換成表達式的最簡單的方法就是把它放在括號內。例如,為了把聲明為整數的變量傳遞給過程,該過程以字符串為參數,則可以用下面的語句:
Sub CallingProcedure ()
Dim intX As Integer
intX = 12 * 3
Foo (intX)
End Sub

Sub Foo (Bar As String)
MsgBox Bar 'Bar 的值為字符串‘ 36 ’。
End Sub

使用可選的參數

在過程的參數列表中列入 Optional 關鍵字,就可以指定過程的參數為可選的。如果指定了可選參數,則參數表中此參數後面的其它參數也必是可選的,並且要用 Optional 關鍵字來聲明。下面兩段示例代碼假定有一個窗體,其內有一命令按鈕和一列表框。
例如,這段代碼提供所有可選參數:
Dim strName As String
Dim strAddress As String

Sub ListText(Optional x As String, Optional y _
As String)
List1.AddItem x
List1.AddItem y
End Sub

Private Sub Command1_Click ()
strName = "yourname"
strAddress = 12345 '提供了兩個參數。
Call ListText (strName, strAddress)
End Sub
而下面的代碼並未提供全部可選參數:
Dim strName As String
Dim varAddress As Variant

Sub ListText (x As String, Optional y As Variant)
List1.AddItem x
If Not IsMissing (y) Then
List1.AddItem y
End If
End Sub

Private Sub Command1_Click ()
strName = "yourname" '未提供第二個參數。
Call ListText (strName)
End Sub
在未提供某個可選參數時,實際上將該參數作為具有Empty 值的變體來賦值。上例說明如何用IsMissing 函數測試丟失的可選參數。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved