Переменное количество аргументов в VB - PullRequest
22 голосов
/ 13 апреля 2010

Как создать функцию с переменным количеством аргументов в Visual Basic? напр.

x =  Sum(1,2,3)
y =  Sum(1,2)

Function Sum('how to declare argument here')
'Is there any special argument manipulation inside function before it is usable?
End Function

Ответы [ 3 ]

20 голосов
/ 13 апреля 2010

Посмотрите на Передача переменного числа аргументов

Function Sum(ParamArray Vals() As Variant)
    Dim intLoopIndex As Integer
    For intLoopIndex = 0 To  UBound(Vals)

    Next intLoopIndex

End Function
13 голосов
/ 13 апреля 2010

Используйте необязательные аргументы, такие как:

Function Sum(Optional X1 As Integer=0, Optional X2 As Integer=0)

или синтаксис универсально переменных аргументов

Function Sum(ParamArray XArr() As Variant)

(возможно, я ошибся с некоторыми элементами синтаксиса - не стесняйтесь исправлять.)

4 голосов
/ 29 августа 2014

Ответы здесь великолепны. В моем приложении мне потребовался произвольно длинный список необязательных аргументов после обязательного начального аргумента.

Вы можете сделать это, просто добавив необходимые аргументы перед записью ParamArray.

Например:

Function Arithmetic(FuncType As String, ParamArray Terms() As Variant)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...