int someVal = 5;
Func f = x => x + someVal;
someVal = 7;
Console.WriteLine(f(3));
是不是应该这样说
声明一个匿名 的委托方法 f ,输入一个int 参数,然后输出一个int 值
f(3) 就是说输入一个 整形参数为3
这个代码块怎么通俗的来讲解
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
3条回答 默认 最新
threenewbee 2016-08-23 06:00关注class Program { void main() { int someVal = 5; Func<int, int> f = x => x + someVal; someVal = 7; Console.WriteLine(f(3)); } } 编译器会生成如下代码 class ClosureContext { int someVal; public ClosureContext(int someval) { someVal = someval; } public int f(int x) { return x + someVal; } } class Program { void main() { int someVal = 5; someVal = 7; Console.WriteLine(new ClosureContext(someVal).f(3)); } }本回答被题主选为最佳回答 , 对您是否有帮助呢?评论 打赏 举报解决 3无用