我正在研究匿名方法(在c#中)-一部分人喜欢其灵活性和简洁性,但我也担心它可能会使代码难以阅读。
我也意识到这种构造似乎违背了一些面向对象的范例。你认为匿名方法符合面向对象原则吗?
我也意识到这种构造似乎违背了一些面向对象的范例。你认为匿名方法符合面向对象原则吗?
lambda
(匿名方法)来自函数式编程范式。这并不意味着它好或坏!如果它适合解决问题那就使用它,如果不适合就不用。面向对象编程不是目标,好的代码才是目标。我讨厌人们试图把单一的范式强加给别人,比如在Java中。C#正在朝着正确的方向发展(依我之见),所以它正在成为一个多范式语言。
对我来说,谈论匿名函数是否“面向对象”或不“面向对象”没有任何意义。变量是面向对象的吗?循环呢?异常呢?
在这种情况下,标签并不是一个有用的应用。
如果你认为在某些特定情况下,使用匿名函数来完成某些事情会使阅读更加困难,那么就不要使用它。
有趣的是,C#中匿名方法的实现有时需要创建对象来处理“闭包”。在此处阅读更多信息:http://blogs.msdn.com/oldnewthing/archive/2006/08/02/686456.aspx