2016-07-26 137 views
4

我需要使用此構造函數public StreamReader(Stream stream, Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize, bool leaveOpen)才能將leaveOpen設置爲true。爲了做到這一點,我需要設置其他參數(Encoding encoding, bool detectEncodingFromByteOrderMarks, int bufferSize)。我想使用StreamReader,所以我不想提供一些隨機值。這些參數的默認值是什麼?StreamReader的默認值是什麼?

順便說一句,我知道我可以使用StreamReader沒有using。 GC會在不接觸流的情況下襬脫它。

回答

11

的默認值如下:

  • 編碼:Encoding.UTF8
  • detectEncodingFromByteOrderMarks:真
  • DefaultBufferSize:1024

你可以看到構造函數和由自己的價值觀前往Reference Source

2

Encoding.UTF8,true1024

來源:the source

,對於Encoding默認爲Encoding.UTF8bufferSize默認值是1024,也documented in the MSDN,但detectEncodingFromByteOrderMarks默認不顯示爲。

1

您可以檢查the reference source來確定這一點。

它表明:

  • detectEncodingFromByteOrderMarks是真的
  • DefaultBufferSize是1024或4096
  • 編碼Encoding.UTF8
  • leaveOpen是假

個人而言,我爲桌面應用程序創建DefaultBufferSize 4096。

0

Stream stream你需要通過閱讀。 Encoding encoding默認AFAIK是UTF-8int bufferSize最少128個字符。 bool leaveOpen默認爲false,所以它在讀取流後會調用Dispose()

Documentation說得很清楚。