为什么为未使用的变量赋值会对此异步代码的功能产生影响?

时间:2016-01-05 18:02:25

标签: c# asp.net-web-api async-await httpresponse http-response-codes

我有这段代码:

private async Task SavePlatypusComplianceFileOnServer(string year, string month)
{
    string monthAsMM = ReportRunnerConstsAndUtils.GetMonthAsMM(month);
    HttpClient client = new HttpClient();
    client.BaseAddress = new Uri(ReportRunnerConstsAndUtils.SERVER_BASE_ADDRESS);
    String uriToCall = String.Format("/api/PlatypusCompliance/{0}/{1}{2}", _unit, year, monthAsMM);
    HttpResponseMessage response = await client.PostAsync(uriToCall, null);
}

......工作正常。

看着它,我想,自己,"自我,为什么要为"回复"分配价值?当你不使用它?为什么不在没有它的情况下调用方法?毕竟,Visual Studio或Resharper会使"响应"告诉你它没有实际意义/冗余。"

所以我把代码更改为:

private async Task SavePlatypusComplianceFileOnServer(string year, string month)
{
    . . . // all but the last line of the code is exactly the same
    await client.PostAsync(uriToCall, null);
}

但是随着这一变化,所有达拉斯都崩溃了 - 我得到的错误消息是关于桌子不能被丢弃因为它们不存在,并且通过PostAsync()调用该方法不成功。

为什么在不使用时为响应分配值会产生差异?

0 个答案:

没有答案