StreamReader 的默认值是什么?

What are the default values for StreamReader?

我需要使用此构造函数 public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen) 才能将 leaveOpen 设置为 true。为此,我还需要设置其他参数 (Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize)。我想按原样使用 StreamReader 所以我不想给出一些随机值。这些参数的默认值是多少?

顺便说一下,我知道我可以使用 StreamReader 而不用 using。并且 GC 将在不接触流的情况下摆脱它。

默认值如下:

  • 编码:编码.UTF8
  • detectEncodingFromByteOrderMarks: true
  • 默认缓冲区大小:1024

您可以通过访问 Reference Source

自己查看构造函数和值

Encoding.UTF8true1024

来源:the source.

Encoding的默认值是Encoding.UTF8bufferSize的默认值是1024也是documented in the MSDN,但是detectEncodingFromByteOrderMarks的默认值不是'似乎是。

您可以检查 the reference source 来确定这一点。

它表明:

  • detectEncodingFromByteOrderMarks 为真
  • 默认缓冲区大小为 1024 或 4096
  • 编码为Encoding.UTF8
  • leaveOpen 为假

就我个人而言,我会为桌面应用程序设置 DefaultBufferSize 4096。

Stream stream你需要传递才能读取。 Encoding encoding 默认 AFAIK 是 UTF-8int bufferSize 最少 128 个字符。 bool leaveOpen 默认是 false 所以它会在读取流后调用 Dispose()

Documentation说清楚了