2012-01-02 50 views
10

我想创建一个过程,其参数也是一个过程。可能吗?
我创建要用于一些程序如下参数:如何将MethodName作为VBNET中过程的参数传递

Private Sub Jump(xStr as string) 
    Msgbox xStr & " is jumping." 
End Sub 

Private Sub Run(xStr as string) 
    Msgbox xStr & " is jumping." 
End Sub 

此过程应该调用上述步骤:

Private Sub ExecuteProcedure(?, StringParameter) '- i do not know what to put in there 
    ? ' - name of the procedure with parameter 
End Sub 

用法:

ExecuteProcedure(Jump, "StringName") 
ExecuteProcedure(Run, "StringName") 

回答

19

相信下面的代码是一个你需要的例子。

Public Delegate Sub TestDelegate(ByVal result As TestResult) 

Private Sub RunTest(ByVal testFunction As TestDelegate) 

    Dim result As New TestResult 
    result.startTime = DateTime.Now 
    testFunction(result) 
    result.endTime = DateTime.Now 

End Sub 

Private Sub MenuItemStartTests_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItemStartTests.Click 

    Debug.WriteLine("Starting Tests...") 
    Debug.WriteLine("") 
    '================================== 
    ' Add Calls to Test Modules Here 

    RunTest(AddressOf Test1) 
    RunTest(AddressOf Test2) 

    '================================== 

    Debug.WriteLine("") 
    Debug.WriteLine("Tests Completed") 

End Sub 

整篇文章可以在http://dotnetref.blogspot.com/2007/07/passing-function-by-reference-in-vbnet.html

希望这有助于找到。

+0

谢谢!我的问题现在已经解决了。 – 2012-01-02 05:14:44

+0

+1,因为它通常是第三方投票的任务,而不是OP,我是第三方。 – Lion 2012-01-02 05:19:36

相关问题