高手请进:函数间传递ParamArray参数数组的问题
我写的一个小程序中需要在函数间传递用ParamArray指定的参数数组,而且被调用的函数也使用ParamArray来指定参数,但现在被两个问题难住了,希望各位高手能够指点迷津。
示例代码在下面。
Private Function MyFunc(ParamArray a()) If a()为空 Then '<--这里应该怎么写? MyFunc = SubFunc1() Else '不为空 If a()包含结构体 Then '<--这里应该怎么写? MyFunc = SubFunc2(a) '<--怎么写才能将包含结构体的数组正确传递到被调用的函数? Else MyFunc = SubFunc3(a) End If End IfEnd FunctionPrivate Function SubFunc1() '代码略End FunctionPrivate Function SubFunc2(ParamArray SomeParam()) '代码略End FunctionPrivate Function SubFunc3(ParamArray SomeParam()) '代码略End Function
'------------------------------------Form1代码-------------------------'全都调用Execute方法来执行不同的操作Public Sub Execute(obj As IExecute) obj.ExecuteEnd Sub'也可以这样写,就可以不用iExecute.cls了,也不用Implements 它了'Public Sub Execute(obj As object)' obj.IExecute_Execute'End SubPrivate Sub 执行方法1_Click() Execute New cExecuteAEnd SubPrivate Sub 执行方法2_Click() Dim x As New cExecuteB x.ParamA = 10 Execute xEnd SubPrivate Sub 执行方法3_Click() Dim x As New cExecuteC x.x = 100 x.y = 100 Execute xEnd Sub'-----------------------------Moudle.bas代码 定义一个结构----------------Public Type Point x As Long y As LongEnd Type'--------------------------------------cExecuteA.cls代码-------------------------Implements IExecute'这个类执行不需要参数Public Sub IExecute_execute() MsgBox "这个类执行不需要参数"End Sub'cExecuteB代码Implements IExecutePublic ParamA As Long'这个类执行需要一个参数Public Sub IExecute_execute() MsgBox "这个类执行需要一个参数" & ParamAEnd Sub'----------------------------cExecuteC.cls代码------------------------Implements IExecutePrivate typeA As Point Public Property Let x(value As Long) typeA.x = valueEnd PropertyPublic Property Let y(value As Long) typeA.y = valueEnd Property'这个类执行需要一个结构Public Sub IExecute_execute() MsgBox "这个类执行需要一个结构" & "x=" & typeA.x & ",y=" & typeA.yEnd Sub'----------------------------------------IExecute.cls代码-------------------------Public Sub Execute()End Sub