在循环中使用,并继续

本文关键字:继续 循环 | 更新日期: 2023-09-27 18:32:26

给定以下示例代码:

var count = 0;
while (count < 5)
{
    using (var request = new HttpRequestMessage(HttpMethod.Get, requestUri))
    using (var response = await StaticHttpClient.Client.SendAsync(request))
    {
        if (!response.IsSuccessStatusCode)
        {
            switch ((int)response.StatusCode)
            {
                case 500:
                case 504:
                    continue;
            }
        }
        else
        {  ... }
    }
    count++;
}

这些 IDisposable 对象是否会在此方法中泄漏内存,还是会正确调用 Dispose 方法? (交换机缺少很多情况,我不关心那里的效率)。

在循环中使用,并继续

这些 IDisposable 对象是否会在此方法中泄漏内存,还是会正确调用 Dispose 方法?

由于您使用了using语句,因此将正确调用Dispose()一次性对象。 continue时,将在循环的下一次迭代之前调用Dispose()方法。

using 语句将始终调用 Dispose() 这是使用它的全部意义