我是否必须将所有IDisposable
对象包含在using(){}
声明中,即使我只是将一个对象传递给另一个对象?例如,在下面的方法:是否需要使用IDisposable对象进行嵌套?
public static string ReadResponse(HttpWebResponse response)
{
string resp = null;
using (Stream responseStream = response.GetResponseStream())
{
using (StreamReader responseReader = new StreamReader(responseStream))
{
resp = responseReader.ReadToEnd();
}
}
return resp;
}
我能巩固这只是一个using
这样的:
public static string ReadResponse(HttpWebResponse response)
{
string resp = null;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
resp = reader.ReadToEnd();
}
return resp;
}
我可以指望Stream
和StreamReader
都被设置?或者我必须使用两个using
声明?
我喜欢堆叠使用,比大量缩进更清洁:-) – 2012-03-30 19:45:57
想象大括号是可选的。他们与任何其他陈述如“if”陈述一样。它是写有效的代码“if(expression)if(expression2)if(expression3){/ *多行代码。* /}“,其中每个if语句嵌套在前一个语句中 – 2012-03-30 19:50:04
@Moozhe编译它并不令人惊讶,它更像VS处理缩进的方式,当使用括号时,它会在额外的级别中选中它,这不是,如果做到这一点,我可能甚至不会使用它 – Servy 2012-03-30 20:02:14