問題
以下のコード、何が表示されると思いますか?
struct S
{
public int Value;
public S(int init) => Value = init;
public async Task F()
{
Value++;
await Task.CompletedTask;
}
}
public static async Task Main()
{
var s = new S(10);
await s.F();
Console.WriteLine(s.Value.ToString());
}
答えは 10 です。
では、以下のコード、何が表示されると思いますか?
struct S
{
public int Value;
public S(int init) => Value = init;
public Task F()
{
Value++;
return Task.CompletedTask;
}
}
public static async Task Main()
{
var s = new S(10);
await s.F();
Console.WriteLine(s.Value.ToString());
}
答えは 11 です。
どうしてこのようになるのでしょうか?