2014-10-30 41 views
1

我的問題:

我有.Enter.TextChanged事件,這兩個事件都激發完全相同的代碼。我已經將這些事件組合在一個處理程序下。這是否被認爲是不好的做法,或者在這個特定的情況下,簡化我的代碼是否明智?處理相同動作的多個事件類型是不好的做法嗎?

示例代碼:

下一個處理程序相結合:

Private Sub TextBox_EnterChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter, TextBox1.TextChanged, TextBox2.TextChanged 
    'Some action. 
End Sub 

默認獨立處理方法:

Private Sub TextBox_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.Enter, TextBox2.Enter 
    'Some action. 
End Sub 


Private Sub TextBox_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged, TextBox2.TextChanged 
    'The same action. 
End Sub 
+0

'TextBox_EnterChanged'不是一個事件 – 2014-10-30 05:26:35

+0

@NeethuSoman我知道。它是一個事件處理程序,其名稱是任意的。向右滾動代碼塊查看事件。無論我如何命名事件處理程序,都會處理事件。我的理解不正確? – 2014-10-30 05:31:34

+1

@NeethuSoman,是方法的名稱,並且是合法的。 – OneFineDay 2014-10-30 05:31:51

回答

1

儘管問 「壞習慣」 有時會導致過度主要基於意見的大量爭論,我會做完全一樣的。這是合法的,功能性的,並且大部分是清楚的(除非你開始處理大量事件)。我會直接用另一個問題回答你的問題:

相反,將相同的代碼複製/粘貼到多個方法中會有什麼好處?

所以,不,我不會考慮這種不好的做法。

+0

感謝您的反饋。我不確定它是否違背了[單一責任原則](http://en.wikipedia.org/wiki/Single_responsibility_principle)。您可能對[幾個小時前發佈的類似問題]的評論感興趣(http://stackoverflow.com/q/26642031/2971649)。它涉及爭論和反對相同的代碼塊。 – 2014-10-30 06:08:02

+1

要更清楚一點:沒有理由擁有完全相同代碼的多個副本。如果您有多個需要類似代碼的事件,請嘗試將相同的部分拆分爲自己的可重用方法,然後在執行更獨特的代碼之前/之後從事件調用它們。 – 2014-10-30 06:15:48

+1

@ClarusDignus - 我看到的唯一問題是如果您需要在未來進行更改。如果代碼仍然如此簡單,那麼如果以後需要將它們分開,它可能不會成爲大問題,但代碼越複雜,以後可能會變得越困難。 – 2014-10-30 14:17:39

相關問題