有一个不明确的Visual Basic作业

时间:2012-07-26 23:33:12

标签: vb.net events

作业说明

  

“编写一个程序,只使用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)的事件基本上我需要做的是制作一个程序,使用事件打印偶数我试图解决问题的方法是在事件中调用如果数字甚至显示当前的数字

2 个答案:

答案 0 :(得分:0)

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

接下来,如果您的Program类具有Counter类的实例并且仅为Even事件设置了事件处理程序,该怎么办?每次出现偶数时,处理程序都可以执行Console.WriteLine()

答案 1 :(得分: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