2012-07-26 171 views
1

分配狀態對Visual Basic中

不清楚的家庭作業「編寫一個程序,打印使用 事件6至16只偶數。」

雖然在課堂上我們只使用CL應用程序只是有一個按鈕不會工作。於是我想到了使用if比如果CurrentNumber是,即使在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)事件MOD 2作爲當前數字將被宣佈,將引發一個事件基本上聲明我需要做的是製作一個程序,打印偶數使用事件我如何解決問題是如何調用事件如果數量甚至是顯示當前的數字

+0

我很抱歉,但你可以更清楚地解釋你需要什麼做?特別是在你最後一句話的時候,這是毫無意義的。 – 2012-07-26 23:36:48

+0

給自己一個真正的句柄,並且知道它是一個if「then」語句。 – Radix 2012-07-26 23:36:54

回答

0

我認爲你是在右邊跟蹤。如果你要建立一個只有一個目的的課程 - 在發生偶數或奇數時統計數字並引發事件?假設這個班級名爲Counter

接下來,如果您的Program類具有Counter類的實例並且只有Even事件僅具有事件處理函數,那該怎麼辦?每次發生偶數時,處理程序都可以執行Console.WriteLine()

+0

謝謝;選擇這個解決方案作爲實際的解決方案,因爲它幫助我比完成作業更多地理解材料! – 2012-07-27 00:27:22

+0

歡迎您。很高興我能幫上忙。 – devuxer 2012-07-27 00:33:38

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 
+0

完成工作而不是指導的好工作。有一些擊敗了賦予任務的全部目的,不是嗎?你剛剛教會如何複製和粘貼 - 很好。 – 2012-07-26 23:51:12

+0

我不一定同意有一個'OddNumber'事件是「不必要的工作」。擁有兩種可能性的事件是有道理的。這樣的課程更像「通用」,而不是像你的例子那樣非常專業化。 – devuxer 2012-07-26 23:55:18

+0

@danm id同意,但在這種情況下,op沒有提及在描述中或示例代碼中使用奇數,但特別提到偶數事件。 – 2012-07-27 04:01:34