【发布时间】:2014-06-29 15:40:53
【问题描述】:
我面临一项旧考试的任务,但我不知道它是关于什么的:
class Demo
{
satic void Main()
{
Func <int,int> xxx = null;
xxx = n => n <= 1 ? 1:n * xxx(n-1);
for (int m=1; m < 6; m++)
{
Console.WriteLine("m= {0} xxx = {1}", m, xxx(m));
}
}
}
有一些类型为 int,int 的通用构造,但这是什么? 有一个 if-else 语句,但这里发生了什么?特别是使用 => 运算符?如果有人能告诉我这里发生了什么,我将非常感激。
我们应该更正这段代码并写下打印输出。但我们不知道第一行会发生什么。
更新:在 Visual Studio 中,未发现任何错误。那么我们为什么要发现错误呢?输出如下:
m=1 xxx=1
m=2 xxx=2
m=3 xxx=6
m=4 xxx=24
m=5 xxx=120
我仍然不清楚发生了什么。
【问题讨论】:
-
您是否尝试过将文本光标移动到“=>”并按 F1(在 Visual Studio 中)?
-
为什么不将它写入 Visual Studio,编译,修复一些小的语法错误,然后查看输出。 (顺便说一句,这是一个recursive lambda)
-
代码中的错误来自于从图片中转移。没有任何错误,那么我们应该纠正什么,大声笑
-
你考试的时候我会笑得更开心,哈哈。
标签: c# generics printing task out