СообЧа > База Знаний > Программирование > Visual Basic

Вопрос

Нужно передать в функцию много однотипных параметров. Например, вызываем ее:

N = MyFunc("Строка1", "Строка2", "Строка3", "и т.д.", … )

Естественно, нужно узнать, сколько их и их значения.

Ответ

Примерно так:

'Функция находит НОД _любого_ количества чисел.
'Использование:
'ret=Devider(10,20,30,40,50,60,70,80,90,100)
Public Function Devider(ParamArray V())
     Dim i As Integer
     Dim lngTemp As Long
     
     'Скопируем во временную переменную первый элемент
     lngTemp = V(0)
     'Пройдемся по всем элементам
     For i = 1 To UBound(V)
  'Найдем НОД предыдущего НОД и следующего числа.
         lngTemp = Devider2(lngTemp, V(i))
     Next i
     Devider = lngTemp
End Function

Как видишь, ParamArray позволяет запихнуть все аргументы в один массив, причем этих аргументов может быть хоть 1000.

Есть некоторые огранчиения при его использовании.

В объявлении функции может быть только один ParamArray и идти он должен в списке аргументов функции последним. Он всегда является опциональным, но с ним не могут использоваться ключевые слова Optional, ByVal и ByRef.

Артем Кривокрисенко



Copyright © 2000-2004 Сообщество Чайников
Контактная информация