如果使用"using"语句,是否需要在流或编写器上调用Flush()?

Ben*_*Ben 42 c# using flush stream writer

Flush()如果我写这样的东西,我不确定是否需要调用使用过的对象:

using (FileStream...)
using (CryptoStream...)
using (BinaryWriter...)
{
    // do something
}
Run Code Online (Sandbox Code Playgroud)

它们总是自动刷新吗?什么时候该using声明冲洗它们,当它不(如果可能发生)?

Dav*_*ras 50

一旦离开使用块的范围,流就会关闭并处理掉.Close()调用Flush(),因此您不需要手动调用它.

  • 这不是必需的,Dispose将始终关闭流,而Close将首先刷新流. (9认同)