使用 lambda 进行 winforms 事件有什么问题吗?
这是一个非常简单的问题。我之所以这么问,是因为我以前从未见过它,这让我怀疑是否有什么问题。
comboBox1.MouseEnter += (a, b) => comboBox1.Focus();
campaignDataGridView.MouseEnter += (a, b) => campaignDataGridView.Focus();
This is a very simple question. I'm asking because I've never seen it before which makes me wonder if there's something wrong.
comboBox1.MouseEnter += (a, b) => comboBox1.Focus();
campaignDataGridView.MouseEnter += (a, b) => campaignDataGridView.Focus();
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
这是完全可以接受的,但是,由于这些是匿名委托,因此无法取消订阅事件处理程序。
也就是说:
这是否是一个问题取决于您的应用和使用。
This is perfectly acceptable, however, since these are anonymous delegates, there is no way to unsubscribe the event handler.
That is:
Whether that is a problem or not depends on your application and use.
没关系;唯一微妙的一点是您是否需要取消订阅;那么您也需要在本地存储委托:
请注意,如果我不使用任一参数(sender/args),我更喜欢匿名方法语法:
因为这不会将任何额外(不必要的)变量引入范围。
It is fine; the only subtle point is if you need to unsubscribe it; then you need to store the delegate locally too:
Note that if I'm not using either parameter (sender/args) I prefer the anon method syntax:
As this doesn't introduce any extra (unnecessary) variables into scope.