【发布时间】:2017-10-06 13:46:07
【问题描述】:
我有以下代码。在这里,我将StreamReader 构造函数与leaveOpen: true 一起使用,为此我需要提供I manage to get their default values 的先前参数。这很麻烦。由于我将stream 与using 一起使用,我对使用StreamReader 与using 有什么好处吗?如果是StreamWriter,答案会改变吗?
using (Strem stream = ...)
{
...
using (StreamReader sr = new StreamReader(stream, Encoding.UTF8, true, 1024, true))
{
...
}
...
}
如果改用以下代码,我会丢失什么?
using (Strem stream = ...)
{
...
StreamReader sr = new StreamReader(stream);
...
...
}
【问题讨论】:
-
在 using 语句完成后关闭。无需显式关闭。一个 try/finally 被遵守,它的调用接近两者。
-
@Botonomous 我想问的是如果我不使用内部使用会发生什么
-
试试看吧。我想 GC 会在流超出范围后捡起它。为了获得最佳实践,您应该保留它。
-
@Botonomous 我不喜欢对其他参数使用默认值的必要性。
标签: c# stream streamreader idisposable