2014-10-30 78 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

相关问题