1

作业指出

“编写一个程序,使用事件仅打印 6 到 16 之间的偶数。”

而在课堂上,我们只使用 CL 应用程序,只是有一个按钮是行不通的。所以我考虑使用 if than 语句,如果 CurrentNumber 与 mod 2 相同,则将引发事件,因为当前数字被声明为 6

        While CurrentNumber < 17
        If CurrentNumber Mod 2 Then
            RaiseEvent Even()
            CurrentNumber = CurrentNumber + 1
        Else
            CurrentNumber = CurrentNumber + 1
        End If
    End While

但是我将如何将事件处理到 console.writeline(CurrentNumber) 基本上我需要做的是制作一个使用事件打印偶数的程序我试图解决问题的方法是在事件中调用,如果数字是偶数显示当前号码

4

2 回答 2

0

我认为你在正确的轨道上。如果您要构建一个只有一个目的的类——计算数字并在偶数或奇数出现时引发事件,该怎么办?假设这个类被称为Counter.

接下来,如果你的Program类有一个类的实例Counter并且只有一个事件处理程序Even怎么办?Console.WriteLine()每次出现偶数时,处理程序都可以执行一次。

于 2012-07-26T23:49:14.057 回答
0

好吧,首先,您正在使用“mod 2”位进行不必要的工作。只需将您的 for 循环限制在您想要的范围内:

For Index As Int32 = 6 To 16 Step 2
  RaiseEvent EvenNumber(Index)
Next

然后您的 EvenNumber 事件设置将类似于:

Public Event EvenNumber(number)

'  In program startup:
AddHandler Me.EvenNumber, AddressOf EvenNumberHandler

' later...
Private Sub EvenNumberHandler(ByVal number As Int32)
  Console.WriteLine(number)
End Sub
于 2012-07-26T23:49:37.653 回答