1

割り当ての状態

「イベントを使用して、6から16までの偶数のみを出力するプログラムを作成してください。」

クラスでは、ボタンだけでは機能しないCLアプリケーションのみを使用します。そこで、CurrentNumberがmod 2でも、現在の番号が6として宣言されている場合に、イベントを発生させるifthanステートメントを使用することを考えました。

        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

あなたは正しい軌道に乗っていると思います。数を数え、偶数または奇数が発生したときにイベントを発生させるという 1 つの目的しか持たないクラスを構築するとしたらどうでしょうか。このクラスが と呼ばれるとしましょう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 に答える