0
在下面的代碼:爲什麼Task.Run參數中使用的外部變量被視爲未分配?
async Task<int> Foo()
{
int result;
await Task.Run(() => { result = 9999; });
return result;
}
VS 2015年報告的錯誤: 「未分配的局部變量 '結果' 使用」。所以,讓我們做一個改變:
async Task<int> Foo()
{
int result = 0;
await Task.Run(() => { result = 9999;});
return result;
}
和瞧。這不僅會編譯,它會返回9999(按預期)。
爲什麼result
在第一個示例中被認爲是未分配的,當它明顯分配在Task.Run
語句中時?