是否有必要在静态方法的 finally 块中处理变量?

Is it necessary to dispose variables in finally block in static methods?

下面这个例子是我在寻找另一个问题的答案时发现的。 在这里,那个家伙在 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();
        }
    }

使用 IDisposable 的整个 是清理 GC 可以清理的 非托管 资源't 自行清理。所以不,你不能让 GC 清理它,因为根据定义,它不能。