【发布时间】:2011-03-15 23:05:20
【问题描述】:
在发现 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);
我发现一些类似的问题针对performance concerns 并指出您是can't remove them,但我没有找到任何针对这是个好主意吗?这个简单问题的解决方案p>
以这种方式使用 lambdas 是否被认为是好的形式,还是更有经验的程序员看不起这一点?它是把事件处理程序隐藏在难以找到的地方,还是通过减少琐碎的事件处理程序的数量来实现代码服务?
【问题讨论】: