当前位置: 首页 > 编程语言 > C#

winforms事件使用lambda有什么问题吗?分享

时间:2023-04-11 02:58:38 C#

winforms事件使用lambda有什么问题吗?这是一个非常简单的问题。我问是因为我以前从未见过它,这让我想知道是否有问题。comboBox1.MouseEnter+=(a,b)=>comboBox1.Focus();campaignDataGridView.MouseEnter+=(a,b)=>campaignDataGridView.Focus();但是,这是完全可以接受的,因为这些是匿名委托,因此无法取消订阅事件处理程序。即://将lambda订阅为事件处理程序comboBox1.MouseEnter+=(a,b)=>comboBox1.Focus();//尝试取消订阅具有相同语法的_different_lambda。//第一个lambda仍然订阅了comboBox1。MouseEnter-=(a,b)=>comboBox1.Focus();这是否是一个问题取决于您的应用程序和使用情况。没关系;唯一微妙的是,如果您需要退订;那么您也需要在本地存储代理:EventHandlerhandler=(s,a)=>...obj.SomeEvent+=handler;...obj.SomeEvent-=处理程序;请注意,如果我不使用任何参数(发送者/参数),我更喜欢匿名方法语法:obj.SomeEvent+=delegate{...};因为这不会在范围内引入任何额外的(不必要的)变量。以上就是C#学习教程:winforms事件使用lambda有什么问题吗?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: