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.也有一个很好的观点,就是不需要它们。我喜欢这种方法。可惜我没想到这一点。我喜欢这种方法。真可惜我没想到这一点。