考慮下面的事件處理程序是否在事件處理程序中始終需要投射發件人?
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
在運行時添加,我最終會與一些斷碼的使用或不投,導致我相信這是最好的處理程序的定義的範圍限制在一個方法內無論如何將它從外面隱藏起來,但也許這有點偏離主題。
在這個簡單的例子中,我沒有看到演員的需要。我的問題是,這是皺眉/不好的做法,還是很簡單,讓它通過?