gpt4 book ai didi

function - 如何使用VB6传递函数参数?

转载 作者:行者123 更新时间:2023-12-02 16:44:44 25 4
gpt4 key购买 nike

如何通过参数传递函数,以便稍后在 VB6 中调用?会是我需要的东西,可以是以下任何选项:

Private Sub Command1_Click()

Call callMethod(MyPrivateFunction)
Call callMethod(MyPublicFunction)
Call callMethod(MyPrivateSub)
Call callMethod(MyPublicSub)

End Sub

Private Function MyPrivateFunction()
MsgBox "MyPrivateFunction"
End Function

Public Function MyPublicFunction()
MsgBox "MyPublicFunction"
End Function

Private Sub MyPrivateSub()
MsgBox "MyPrivateSub"
End Sub

Public Sub MyPublicSub()
MsgBox "MyPublicSub"
End Sub

Public Function callMethod(ByRef func As Object)
Call func
End Function

最佳答案

IIRC VB6 中有一个 AddressOf 函数来获取函数地址,但是在 VB6 中实际使用该函数地址可能会遇到很大困难。

处理此问题的 SOP 方法是使用 CallByName(),它允许您通过名称调用函数等。

最后,您还可以采取高级道路,使用标准的 OO 解决方案来解决此问题:编写自己的类来实现您自己设计的特殊接口(interface) MyFunctionInterface,而不是传递函数。该接口(interface)只有一个方法FunctionToCall(..),您可以在不同的类中实现该方法来调用您需要的不同函数。然后,您将这些类之一的实例传递给您的例程,例程将其作为 MyFunctonInterface 接收并调用其上的 FunctionToCall 方法。当然,这需要大量微小的设计更改......

关于function - 如何使用VB6传递函数参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493664/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com