C#转换动作<;int>;兰姆达

C#转换动作<;int>;兰姆达,c#,lambda,C#,Lambda,我有以下代码: int[] iArray = new int[] { 2, 3, 4 }; Action<int> action = new Action<int>(ShowSquares); Array.ForEach(iArray, action); private static void ShowSquares(int val) { Console.WriteLine("{0:d} squared = {1:d}", val, val * val); }

我有以下代码:

int[] iArray = new int[] { 2, 3, 4 };
Action<int> action = new Action<int>(ShowSquares);
Array.ForEach(iArray, action);

private static void ShowSquares(int val)
{
    Console.WriteLine("{0:d} squared = {1:d}", val, val * val);
}
int[]iArray=newint[]{2,3,4};
动作动作=新动作(显示方块);
Array.ForEach(iArray,action);
专用静态无效显示方块(int val)
{
WriteLine(“{0:d}平方={1:d}”,val,val*val);
}
当这段代码运行时,我想转换第二行

Action<int> action = new Action<int>(ShowSquares);
Action动作=新动作(ShowSquares);
使用lambda表达式

这可能吗

短暂性脑缺血发作

生成的lambda将与
ShowSquares
方法相同。只要以后不需要使用
action
,就可以在
ForEach
方法中内联声明它,而不是先声明操作。此外,作为了解代表和lambda的练习,这很好,但在实践中,我建议:

int[] iArray = new int[] { 2, 3, 4 };
foreach (var val in iArray)
    Console.WriteLine("{0:d} squared = {1:d}", val, val * val));
或者,如果最后一行将在其他地方重用,则将其重新分解为
ShowSquares
方法

Action<int> action = (a) => ShowSquares(a); 
生成的lambda将与
ShowSquares
方法相同。只要以后不需要使用
action
,就可以在
ForEach
方法中内联声明它,而不是先声明操作。此外,作为了解代表和lambda的练习,这很好,但在实践中,我建议:

int[] iArray = new int[] { 2, 3, 4 };
foreach (var val in iArray)
    Console.WriteLine("{0:d} squared = {1:d}", val, val * val));
或者,如果最后一行将在其他地方重复使用,则将其重新分解为一个
ShowSquares
方法。

Action Action=(a)=>ShowSquares(a);
Action<int> action = (a) => ShowSquares(a); 
动作动作动作=(a)=>ShowSquares(a);

看看是否可以完成。我试图对lambda表达式有更深入的了解,看看是否可以做到。我试图对lambda表达式有更深入的了解。为什么在(a)周围需要括号?这一定是个人喜好。我在有括号和没有括号的情况下都做了,LinqPad 4似乎并不介意。你是对的,它们是可选的(只是个人偏好)。我不喜欢使用它们,因为这会使代码更短。您可能更喜欢它们,因为它看起来更像一个普通的方法声明。在将类似这样的lambda传递给函数时,我不会使用括号,但在赋值情况下,
=a=>
标记在我看来很奇怪/错误,因此我想添加()使代码更清晰。关于它看起来奇怪/错误的一点很好。Tim S.也有一个很好的观点,就是没有它们。为什么在(a)后面需要括号?这一定是个人喜好。我在有括号和没有括号的情况下都做了,LinqPad 4似乎并不介意。你是对的,它们是可选的(只是个人偏好)。我不喜欢使用它们,因为这会使代码更短。您可能更喜欢它们,因为它看起来更像一个普通的方法声明。在将类似这样的lambda传递给函数时,我不会使用括号,但在赋值情况下,
=a=>
标记在我看来很奇怪/错误,因此我想添加()使代码更清晰。关于它看起来奇怪/错误的一点很好。Tim S.也有一个很好的观点,就是不需要它们。我喜欢这种方法。可惜我没想到这一点。我喜欢这种方法。真可惜我没想到这一点。