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;
}
そしてvoila。コンパイルするだけでなく、期待通りに9999を返します。
ステートメントで明らかに割り当てられている場合、最初の例でresult
が割り当て解除されていると見なされるのはなぜですか?