VBScript: передача объекта в функцию? - PullRequest
0 голосов
/ 19 марта 2010

В приведенном ниже примере генерируется ошибка:

Ошибка компиляции VBScript: невозможно использовать скобки при вызове Sub

Эта ошибка не возникает, если все параметры не являются объектами.

Есть ли специальный способ передачи параметров объекта в функции VBScript?

Option Explicit

Dim obj

Function TestFunc(obj)
 WScript.Echo "Why doesn't this work?"
End Function

Set obj = CreateObject("Scripting.Dictionary")
obj.Add("key", "val")

TestFunc(obj) ' Error here!

Ответы [ 3 ]

3 голосов
/ 19 марта 2010

Используйте круглые скобки только при получении возвращаемого значения. Также используйте Sub вместо Function для функций, которые ничего не возвращают.

2 голосов
/ 19 марта 2010

Скобки можно использовать только тогда, когда ..

  1. Вы вызываете функцию, которая возвращает значение.
  2. Когда вызываемая подфункция / функция принимает только 1 параметр.
  3. Если вы предшествуете вызову с ключевым словом Call, например. Call TestFunc(obj)
1 голос
/ 19 марта 2010

Эта строка

obj.Add("key", "val")

вызывает проблему

изменить на

obj.Add "key", "val"

obj.Add - это подпункт, который, как и ошибка, говорит, что вы не можете использовать parens, но ваш TestFunc является функцией и может вызываться с parens

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...