使用EndOfStream和检查null之间的区别是什么?

时间:2014-11-04 06:01:21

标签: c# while-loop stream null

我正在编写一个大型应用程序,其中涉及来自进程或文件流的一些流式传输。我有两个不同方法的示例来检测流的结束。我很好奇有什么不同,哪一个最好用?效率或性能有什么不同吗?此外,在.NET参考指南中,我注意到他们检查了ReadAllLines等方法中的null,这些方法来自文件(类似于下面的示例2),所以为什么他们不使用{{1} }?

示例1:

EndOfStream

示例2:

...
StreamReader std_out = myProcess.StandardOutput;

while (!std_out.EndOfStream)
{
    string rLine = std_out.ReadLine();
    //Do something...
}
...

干杯。

1 个答案:

答案 0 :(得分:4)

没有实际差异。尽管文档的读取方式如何,EndOfStream仅在当前缓冲的流位置位于流的末尾时返回true(即,当您实际读取时)所有文字)。

因此,它归结为哪一个看起来更好,和/或哪一个更适合您正在编写的代码结构。