【发布时间】:2013-11-07 03:18:57
【问题描述】:
我有一个返回如下的方法:
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
using (var reader = new StreamReader(stream))
return reader.ReadToEnd();
我可以像这样将三种用法结合起来并具有相同的安全级别吗?
using (var reader = new StreamReader(request.GetResponse().GetResponseStream()))
return reader.ReadToEnd();
或者由于这是一个私有作用域的函数,我可以在不使用 using 的情况下安全返回吗?
return new StreamReader(request.GetResponse().GetResponseStream()).ReadToEnd();
包含此方法的对象不是IDisposable。我猜我的两个问题都没有,但我对其他观点很好奇。
【问题讨论】:
-
请注意,StreamReader 的 Dispose 将释放您在构造时提供的流。因此,您无需使用流对象显式处置或包装。 stackoverflow.com/questions/1065168/…
-
不要认为这个问题应该作为重复而关闭。使用流式阅读器的事实会产生不同的答案。
标签: c# garbage-collection dispose