VB幾種函數參數傳遞方法,Variant,數組,Optional,ParamArray


from https://blog.csdn.net/whchensir/article/details/52050796

VB幾種函數參數傳遞方法,Variant,數組,Optional,ParamArray 

一) 過程的參數被缺省為具有 Variant 數據類型。
  1)ByRef按  地址傳遞參數在 VB 中是缺省的
  按地址傳遞參數后,過程返回的也是地址,函數中改變了的變量值也將帶回來。

  2)ByVal 關鍵字指出參數是按值來傳遞的
  按值傳遞參數時,傳遞的只是變量的副本。如果過程改變了這個值,則所作變動只影響副本而不會影響變量本身。 

二)使用不定數量的參數 ParamArray

  一般說來,過程調用中的參數個數應等於過程說明的參數個數。可用 ParamArray 關鍵字指明,過程將接受任意個數的參數。於是可以這樣來編寫計算總和的 Sum 函數:

Dim x As Integer,y As Integer,intSum As Integer
Sub Sum (ParamArray intNums ())
   For Each x In intNums
      y = y + x
   Next x
   intSum = y
End Sub
調用方法    Sum 1, 3, 5, 7, 8

三)Optional 關鍵字,使用可選的參數
   Optional 關鍵字,就可以指定過程的參數為可選的。如果指定了可選參數,則參數表中此參數后面的其它參數也必是可選的,並且要用 Optional 關鍵字來聲明。

Dim strName As String,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

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

1、用IsMissing可以檢測某個Optional參數是否輸入  ,但是切記IsMissing只對Variant類型的參數有效,對其他類型無效   
                

         2、其他類型的Optional參數的默認值可以用賦值號來設定。賦值號必須在參數類型名稱后面。

            such as:

            Sub Sub1(var1 As String, Optional Var2 As String = "可選參數默認值") 

            end sub
View Code

四)Optional 聲明arr()數組與Variant 方法
   通常用Optional  arr() as TypeName 為非法
   此時可聲明函數變量為 Optional arr as Variant 
   調用時可使用Fun(arr()) 
此時函數中可用LBound(arr)的UBound(arr)確定數組邊界


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM