2014-01-22 37 views
1

只是一個非常快速的問題:我想創建一個帶有可選參數的函數,因爲我無法在函數中找到對參數的需要。因此,我已編碼在視覺基本下面的函數:在函數中有一個可選參數

Sub characterListLength(ByVal Optional) 
    Dim rowCount As Integer 
    Dim endOfArray As Boolean 
    While endOfArray = False 
     If dataArray(0, rowCount) And dataArray(1, rowCount) = "" Then 
      arrayLength = rowCount 
      endOfArray = True 
     Else 
      rowCount += 1 
     End If 
    End While 



End Sub 

然而在第一行:

Sub characterListLength(ByVal Optional) 

有其中一個標識符被預期的錯誤的代碼表示(BYVAL可選) 。我不知道如何解決這個錯誤,並有可選參數。如果有人能解釋我還需要做些什麼來解決這個問題,那將是非常有用的。

+0

'子characterListLength(可選名稱的String = 「富」) 'NAME是可選的,但程序將使用「foo」作爲默認值 – Plutonix

回答

2

你需要一個實際的浮動利率轉的關鍵字的順序是這樣的:

Sub characterListLength(Optional ByVal optionalNumber As Integer = 0) 
0

你需要給參數的名稱和

Sub characterListLength(Optional ByVal p = Nothing) 
2

如果你說:

,因爲我找不到功能中需要的參數

然後使用方法,無需參數:

Sub characterListLength() 
    'Here your code 
End Sub 
0

一個更好的「點nettier」替代可選參數是使用過載的方法。請考慮以下幾點:

Overloads Sub ShowMessage() 
    ShowMessage("This is the default alter message") 
End Sub 

Overloads Sub ShowMessage(ByVal Message As String) 
    Console.WriteLine(Message) 
End Sub 

這樣寫的,你可以撥打上面的方法是雙向的:

ShowMessage() 'will display default message 
ShowMessage("This is custom message") 'will display method from the parameter 

演示:http://dotnetfiddle.net/OOi26i