C# 输入为空的Lambda表达式

C# 输入为空的Lambda表达式,c#,c#-3.0,lambda,C#,C# 3.0,Lambda,好的,非常愚蠢的问题 x => x * 2 lambda是否表示与的委托相同的内容 int Foo(x) { return x * 2; } 但是lambda的等价物是什么呢 int Bar() { return 2; } ? 非常感谢 那将是: () => 2 用法示例: var list = new List<int>(Enumerable.Range(0, 10)); Func<int> x = () => 2; list.ForEach(

好的,非常愚蠢的问题

x => x * 2
lambda是否表示与的委托相同的内容

int Foo(x) { return x * 2; }
但是lambda的等价物是什么呢

int Bar() { return 2; }
?

非常感谢

那将是:

() => 2
用法示例:

var list = new List<int>(Enumerable.Range(0, 10));
Func<int> x = () => 2;
list.ForEach(i => Console.WriteLine(x() * i));
var list=新列表(可枚举范围(0,10));
Func 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
//初始化整数列表。可枚举。范围返回0-9,
//它被传递给接受
//数不清的
var列表=新列表(可枚举范围(0,10));
//初始化返回2的表达式lambda
Func x=()=>2;
//使用List.ForEach方法,对整数进行迭代以写入内容
//到控制台。
//通过调用x()执行表达式lambda(返回2)
//并将结果乘以当前整数
list.ForEach(i=>Console.WriteLine(x()*i));
//结果:0,2,4,6,8,10,12,14,16,18
如果没有参数,可以直接使用()

() => 2;

空lambda等价物为
()=>2

lmabda为:

() => 2

该死,太快了:)谢谢大家!嗨,这似乎是一个很好的例子;你能用通俗易懂的英语一行一行地解释一下吗@PussInBoots补充了一些评论。希望有帮助!谢谢仍然对Func x和x()有点困惑。。我想我需要多读一点关于Func,delegations和lambdas的知识。有人能给我解释一下,与仅仅使用常量相比,这有什么好处吗?