代码之家  ›  专栏  ›  技术社区  ›  Luk

具有void输入的lambda表达式

  •  29
  • Luk  · 技术社区  · 15 年前

    好吧,这个问题很傻。

    x => x * 2
    

    是lambda,它表示与的委托相同的内容

    int Foo(x) { return x * 2; }
    

    但是lambda等于什么

    int Bar() { return 2; }
    

    ??

    谢谢!

    4 回复  |  直到 11 年前
        1
  •  38
  •   outis    15 年前

    () => 2

        2
  •  17
  •   Ahmad Mageed    11 年前

    () => 2
    

    var list = new List<int>(Enumerable.Range(0, 10));
    Func<int> x = () => 2;
    list.ForEach(i => Console.WriteLine(x() * i));
    

    // initialize a list of integers. Enumerable.Range returns 0-9,
    // which is passed to the overloaded List constructor that accepts
    // an IEnumerable<T>
    var list = new List<int>(Enumerable.Range(0, 10));
    
    // initialize an expression lambda that returns 2
    Func<int> x = () => 2;
    
    // using the List.ForEach method, iterate over the integers to write something
    // to the console.
    // Execute the expression lambda by calling x() (which returns 2)
    // and multiply the result by the current integer
    list.ForEach(i => Console.WriteLine(x() * i));
    
    // Result: 0,2,4,6,8,10,12,14,16,18
    
        3
  •  9
  •   Steven Robbins    15 年前

    () => 2;
    
        4
  •  4
  •   Pawel Lesnikowski    15 年前

    () => 2