Call MagicFunction(intData1, intData2, Dim intData3) 是 vbs 中的有效语句吗?
Is Call MagicFunction(intData1, intData2, Dim intData3) a valid statement in vbs?
我不太确定如何以任何其他方式调整它。
问题是,我试图在 vbs 中合并具有相同名称的函数。有时,该功能会以不同的形式出现在系统的其他部分。如果它们相差太大,我很遗憾地让它们保持原样。但是,如果差异很小(比如其中一个函数只比其他函数多一个变量,然后我可以检查函数中的变量),我想添加一个变量作为替代变量。
我已经知道可选变量在 vbs 中是不可能的,而且我已经有过传递变体数组的经验(就像一个魅力),但我相信这种情况有点不同。
Dim 在这里不正确。你可以这样做,例如:
Public Function MagicFunction(intData1, ByRef intData2, ByVal intData3)
' some code
End Function
并调用它:
MagicFunction 3, iCount, ""
要有 "optional arguments",您只能使用一个数组来解析它(例如使用 UBound(aTab) 来 select 正确的大小写
Public Function MagicFunction(ByVal aTab)
Select Case UBound(aTab)
Case 1: MagicFunction1 aTab(1)
Case 2: MagicFunction2 aTab(1), aTab(2)
Case Else: MsgBox "function called with more than 2 args" '<-- Should never go there
End Select
End Function
根据参数的数量使用不同版本的函数,MagicFunction1、MagicFunction2...这很丑陋,但可以解决问题![=14=]
另一种可能性是使用空字符串作为参数,并定义函数如何在字符串为空时忽略部分(或者更准确地说,使用特定键调用,如 "IGNORE_KEY"
)
希望我能回答您的问题!
我不太确定如何以任何其他方式调整它。 问题是,我试图在 vbs 中合并具有相同名称的函数。有时,该功能会以不同的形式出现在系统的其他部分。如果它们相差太大,我很遗憾地让它们保持原样。但是,如果差异很小(比如其中一个函数只比其他函数多一个变量,然后我可以检查函数中的变量),我想添加一个变量作为替代变量。
我已经知道可选变量在 vbs 中是不可能的,而且我已经有过传递变体数组的经验(就像一个魅力),但我相信这种情况有点不同。
Dim 在这里不正确。你可以这样做,例如:
Public Function MagicFunction(intData1, ByRef intData2, ByVal intData3)
' some code
End Function
并调用它:
MagicFunction 3, iCount, ""
要有 "optional arguments",您只能使用一个数组来解析它(例如使用 UBound(aTab) 来 select 正确的大小写
Public Function MagicFunction(ByVal aTab)
Select Case UBound(aTab)
Case 1: MagicFunction1 aTab(1)
Case 2: MagicFunction2 aTab(1), aTab(2)
Case Else: MsgBox "function called with more than 2 args" '<-- Should never go there
End Select
End Function
根据参数的数量使用不同版本的函数,MagicFunction1、MagicFunction2...这很丑陋,但可以解决问题![=14=]
另一种可能性是使用空字符串作为参数,并定义函数如何在字符串为空时忽略部分(或者更准确地说,使用特定键调用,如 "IGNORE_KEY"
)
希望我能回答您的问题!