考虑下面的事件处理程序是否在事件处理程序中始终需要投射发件人?
Private Sub ProfileSelectCheckBox_CheckedChanged(sender As Object, e As EventArgs) Handles ProfileSelectCheckBox.CheckedChanged
ProfilesComboBox.Enabled = ProfileSelectCheckBox.Checked
End Sub
在此处理程序,我不使用sender
可言,但是我看到很多人在谈论铸造sender
的格局。在我的情况下,我会最终得到一些尴尬的代码,因为处理程序没有将对象引用传递给ProfilesComboBox
。
ProfilesComboBox.Enabled = DirectCast(sender, CheckBox).Checked
如果这个处理程序是另一个CheckBox
在运行时添加,我最终会与一些断码的使用或不投,导致我相信这是最好的处理程序的定义的范围限制在一个方法内无论如何将它从外面隐藏起来,但也许这有点偏离主题。
在这个简单的例子中,我没有看到演员的需要。我的问题是,这是皱眉/不好的做法,还是很简单,让它通过?