Оба StreamWriter.Dispose () и Stream.Dispose () освобождают все ресурсы, удерживаемые объектами. Они оба закрывают основной поток.
Исходный код Stream.Dispose () (обратите внимание, что это детали реализации, поэтому не надейтесь на это):
public void Dispose()
{
this.Close();
}
StreamWriter.Dispose () (аналогично Stream.Dispose ()):
protected override void Dispose(bool disposing)
{
try
{
// Not relevant things
}
finally
{
if (this.Closable && (this.stream != null))
{
try
{
if (disposing)
{
this.stream.Close();
}
}
finally
{
// Not relevant things
}
}
}
}
Тем не менее, я обычно неявно закрываю потоки / потоковые записи перед их удалением - думаю, это выглядит чище.