相关疑难解决方法(0)

C#闭包,为什么循环变量通过引用捕获?

在这个例子中,我试图通过值传递,但是传递了引用.

for (int i = 0; i < 10; i++)
{
    Thread t = new Thread(() => new PhoneJobTest(i);
    t.Start();
}
Run Code Online (Sandbox Code Playgroud)

这样可以解决:

 for (int i = 0; i < 10; i++)
{
    int jobNum = i;
    Thread t = new Thread(() => new PhoneJobTest(jobNum);
    t.Start();
}
Run Code Online (Sandbox Code Playgroud)

这是怎么回事?为什么原始示例传递引用?

c#

10
推荐指数
2
解决办法
3446
查看次数

标签 统计

c# ×1