是否有必要在静态方法中处理finally块中的变量?
本文关键字:finally 变量 处理 是否 静态方法 | 更新日期: 2023-09-27 18:07:58
下面这个例子是我在寻找另一个问题的答案时发现的。这家伙在最后一块处理了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 无法自行清理的非托管资源。所以,不,你不能让GC清理它,因为,根据定义,它不能。