【问题标题】:Use of anonymous method使用匿名方法
【发布时间】:2011-08-27 21:37:41
【问题描述】:

我没有使用匿名方法。我发现了一个迭代列表的代码,如代码 sn-p 1 所示。为什么代码 sn-p 1 比 2 更受欢迎?

    List<String> names = new List<String>(); 

    ... 
    //Code snippet 1
    names.ForEach(delegate(String name)
    {
        Console.WriteLine(name);
    });

    //Code snippet 2
    foreach (string name in names)
    {
        Console.WriteLine(name);
    }

【问题讨论】:

  • 我不知道 sn-p 1 优于 2。有什么证据吗?
  • 我也想知道为什么有人会选择 sn-p 1。事实上,我在我正在处理的项目的代码库中发现了这个,其他人编码。
  • 我更喜欢第二个而不是第一个。如果需要,我只会使用第一个类似的东西。例如并行for。

标签: c# .net anonymous-methods


【解决方案1】:

我根本没有看到 sn-p 1 用得太多。我确实看到了它使用 lambda 表达式的变体。

names.ForEach(x=> Console.WriteLine(x));

【讨论】:

  • 这个可以简化为names.ForEach(Console.WriteLine);
【解决方案2】:

在这种情况下,没有任何好处。

在您的示例中,您会发现年长的程序员使用方法 2,而新的程序员可能会使用方法 1。

年长的程序员在使用匿名方法之前有更多的经验,匿名方法是新的并且没有“根植于他们的灵魂”,他们会自动按照样式 #2 进行编程。

新程序员可能会使用 #1,因为他们一直认为一切都是方法调用。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-06-09
  • 1970-01-01
  • 1970-01-01
  • 2018-11-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多