发现了lambda表达式及其作为匿名函数的用法后,我发现自己写了很多更琐碎的事件,比如这些:
txtLogin.GotFocus += (o, e) =>
{
txtLogin.Text = string.Empty;
txtLogin.ForeColor = SystemColors.ControlText;
};
txtLogin.LostFocus += (o, e) =>
{
txtLogin.Text = "Login...";
txtLogin.ForeColor = SystemColors.InactiveCaptionText;
};
我也已经放弃了只调用其他函数的事件处理程序,取而代之的是使用执行相同操作的小型 Lambda 表达式:
backgroundWorker.DoWork += (o, e) => DatabaseLookup.Open(e.Argument as string);
我发现一些类似的问题讨论性能问题并指出你不能删除它们,但我没有找到任何一个讨论简单问题的答案这是一个好主意吗?
在这种情况下使用lambda表达式被认为是良好的形式吗?或者更有经验的程序员是否看不起它?它是否隐藏了难以找到的事件处理程序,还是通过减少琐碎的事件处理程序对代码提供了服务?