Avi*_*ner 1 c# syntax lambda task-parallel-library
我是新手Tasks,仍在努力掌握这一概念.
虽然做了一些研究,我碰到这个文章与下面的代码:
Task<int32> t = new Task<int32>(n => Sum((Int32)n), 1000);
Run Code Online (Sandbox Code Playgroud)
从示例中,我了解到它1000是作为Sum函数的参数传递的,但我似乎并不理解语法.
我的问题是编译器如何知道它应该取代n与1000当总和被称为?
lambda的参数在lambda中表示为n之前的=>.也就是说n然后作为一个参数传递的Sum()被称为lambda表达式的主体内的方法.
如果我将lambda表达式重写为委托,那么对您来说可能更清楚:
Task<Int32> t = new Task<Int32>(
delegate(Int32 n) { return Sum((Int32)n); },
1000);
Run Code Online (Sandbox Code Playgroud)
它不会在编译时被替换,而是在运行时,一旦Task执行就被替换.
| 归档时间: |
|
| 查看次数: |
133 次 |
| 最近记录: |