lambda表达式是运行到它才会动态生成吗?

Silentdoer 2017-01-12 12:05:12
比如对于这里面
conDic.AddOrUpdate(key, newValue, (cKey, oldValue) => newValue);
的(cKey, oldValue) => newValue这个lambda表达式
是不是在系统运行到了这里才会生成?
故newValue对于该lambda是个常量。
如果不是动态生成,那系统又怎么处理newValue的?
是隐藏的有第三个产生来传newValue,即:(cKey, oldValue, newValue) => newValue ?
...全文
172 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Silentdoer 2017-01-12
  • 打赏
  • 举报
回复
找到对应的知识点了,是闭包的概念。
Silentdoer 2017-01-12
  • 打赏
  • 举报
回复
引用 1 楼 u010109316 的回复:
不是动态生成的,是经过预编译的, 你调试的时候可以打个断点然后编辑里面的表达式,更改之后是没办法编辑并继续的
那如果是预编译的对于(cKey, oldValue) => newValue 系统是怎么处理newValue的呢?这个值可是必须运行到这一步才能确定呀。
水墨林兮 2017-01-12
  • 打赏
  • 举报
回复
不是动态生成的,是经过预编译的, 你调试的时候可以打个断点然后编辑里面的表达式,更改之后是没办法编辑并继续的
闭包客 2017-01-12
  • 打赏
  • 举报
回复
引用 3 楼 silentdoer 的回复:
找到对应的知识点了,是闭包的概念。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧