是否有必要在静态方法中将finally变量置于finally块中?

时间:2015-08-13 14:25:11

标签: c# garbage-collection dispose idisposable finally

下面的这个例子我在寻找另一个静止的时候找到了。 在那里,那个人在finally块中处理response。 真的有必要吗?这是GC在这种情况下的工作吗?

public static async Task EnsureSuccessStatusCodeAsync(this HttpResponseMessage response)
    {
        try
        {
            if (response.IsSuccessStatusCode)
                return;
            var content = await response.Content.ReadAsStringAsync();
            throw new SimpleHttpResponseException(response.StatusCode, content);
        }
        finally
        {
            response.Content?.Dispose();
        }
    }

1 个答案:

答案 0 :(得分:2)

使用IDisposable的整个是清理GC 无法清理的非托管资源拥有。所以不,你不能让GC清理它,因为根据定义它不能。