我觉得我应该知道这是如何工作的,因为我经常使用它似乎有效,但我不知道。作为一个例子,这将如何表现:
void MyMethod()
{
for(int i = 0; i < 100; i++)
{
DoSomeWork(() =>
{
Console.WriteLine(i);
});
}
}
i
的范围如何变化?值是否复制到回调或者回调函数在调用时是否可以访问变量?在MyMethod
完成后,变量是否会在内存中?
对于这些事情是否有一个很好的解释,特别是在使用lambda和async
方法时?