当变量是 IDisposable 时,我们有using
关键字来管理处置。但是如果我们在一个方法中返回值,我们应该有using
两次吗?
StringContent stringToStringContent(string str)
{
using (StringContent content = new StringContent(str))
{
return content;
}
}
void logStringContent()
{
using (StringContent content = stringToStringContent("test"))
{
Debug.WriteLine(content.ToString());
return;
}
}
在上面的这个例子中,我只有 1 个new
,但我有 2 个using
相同的东西。所以我觉得不平衡。是否更好:
a)保留两者using
,语言/编译器知道避免双重处理的工作吗?
b) 只保留using
在一起new
,其他情况下不需要?:
void logStringContent()
{
StringContent content = stringToStringContent("test");
Debug.WriteLine(content.ToString());
return;
}
c) 只using
在不回来的时候保留,回来的时候不需要?:
StringContent stringToStringContent(string str)
{
return new StringContent(str);
}
我唯一能感觉到的是 b) 不是正确的答案,因为它不适用于此处描述的问题:.NET HttpClient 在多次请求后挂起(除非 Fiddler 处于活动状态)