vb.net - 添加一个包含所有四个数学过程的多播委托(delegate)?

标签 vb.net delegates invoke multicast

我必须为我的编程课编写如下所示的小型 vb.net 控制台程序。现在我必须这样做:

Add a multicast delegate that holds all four procedures. Call the procedures using the DynamicInvoke() method.

我该怎么做?我尝试了我能想到的一切,但似乎无法弄清楚。这是我的代码。随意做任何你想做的事。任何帮助和解释表示赞赏。谢谢!

Imports System
Module Module1
Dim a, b, result as Integer
Private Delegate Sub myDelegate()
Sub Main()
    Dim ask As myDelegate
    ask = New myDelegate(AddressOf Ask1)
    ask()
    Dim Multiply1 As myDelegate
    Multiply1 = New myDelegate(AddressOf Multiply)
    Multiply1()
    Dim Subtraction1 As myDelegate
    Subtraction1 = New myDelegate(AddressOf Subtraction)
    Subtraction1()
    Dim Addition1 As myDelegate
    Addition1 = New myDelegate(AddressOf Addition)
    Addition1()
    Dim Division1 As myDelegate
    Division1 = New myDelegate(AddressOf Division)
    Division1()
    Console.ReadLine()
End Sub
Sub Ask1()
    Console.WriteLine("Enter First Number")
    a = Console.ReadLine()
    Console.WriteLine("Enter Second Number")
    b = Console.ReadLine()
End Sub
Sub Addition()
    Result = a + b
    Console.WriteLine("Added: " & Result)
End Sub
Sub Subtraction()
    Result = a - b
    Console.WriteLine("Subtracted: " & Result)
End Sub
Sub Multiply()
    result = a * b
    Console.WriteLine("Multiplied: " & Result)
End Sub
Sub Division()
    Console.WriteLine("Divided: " & a / b)
End Sub
End Module

最佳答案

有这样的事吗? ...将其添加到 Main 末尾:

    Dim dMultiCast As myDelegate
    dMultiCast = [Delegate].Combine(New myDelegate(AddressOf Addition),
                                    New myDelegate(AddressOf Subtraction),
                                    New myDelegate(AddressOf Division),
                                    New myDelegate(AddressOf Multiply))
    dMultiCast.DynamicInvoke()

    Console.ReadLine()
End Sub

关于vb.net - 添加一个包含所有四个数学过程的多播委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14543045/

相关文章:

vb.net - 如何在 VB.NET 中命名成员变量?

javascript - 在 iframe 中打开一个 asp.net 页面

asp.net - Request() 与 Request.QueryString()

C# 从另一个线程上调用的委托(delegate)捕获异常

java - 我调用正确了吗?

vb.net - MurmurHash3 测试向量

objective-c - 在委托(delegate)调用中丢失属性地址

c# - 删除事件处理程序

c++ - 如何在 C++ 中通过函数名 (std::string) 调用函数?

java - 在抽象类方法中调用接口(interface)方法