2010-06-16 64 views
3

在Visual Basic中,我有許多可選參數的函數。我希望能夠將這些可選參數中的一些傳遞給函數,而不必使用許多逗號和空格來達到我想要的。在某處我看到了一種命名參數的方式,如OptVar:=val,但這似乎不起作用。只是想知道是否有辦法做到這一點。這將有助於可讀性。在Visual Basic中命名可選參數

Function foo(Optional val1 = 1, Optional val2 = 2, Optional val3 = 3) 
End Function 

要只需要像這樣的最後使用arg foo

fud = foo(, , 4) 

有點笨拙。如果像這樣的結構工作會更好:

fud = foo(val3:=4) 

但這不起作用。

+0

如果您提供了一些您已經嘗試過的代碼,則更容易給出答案。 – systemovich 2010-06-17 13:24:28

+0

函數foo(可選VAL1 = 1,可選val2次= 2,可選VAL3 = 3) ... 結束函數 爲了只需要這樣的最後使用arg FOO:FUD = FOO(,,4) 是有點unweildy。如果像這樣的結構起作用會更好:fud = foo(val3:= 4)。但這不起作用。 如果像這樣的東西會工作,這將是偉大的! 謝謝。 – SteveNeedsSheetNames 2010-06-18 01:03:50

+0

已經有一段時間了,看起來沒有人能找到解決方案。 感謝您的嘗試。 – SteveNeedsSheetNames 2010-07-08 16:38:35

回答

4

這實際上做的工作:

Function foo(Optional val1 = 1, Optional val2 = 2, Optional val3 = 3) 
    MsgBox "val1: " & val1 & " val2: " & val2 & " val3: " & val3 
    foo = val3 
End Function 


Private Sub Form_Load() 
    MsgBox "foo returned: " & foo(val3:=4) 
End Sub 

你將不得不作爲輸出的第一消息框說:「VAL1:1值2:1 VAL3:4」,第二個與foo的返回:4