0
我正在编写一个大型应用程序,它涉及从进程或文件流中传输的一点点流。下面有2个示例来检测流结束的不同方式。我很好奇,究竟有什么区别,哪一个最适合使用?效率或性能有什么不同?另外,在.NET参考指南中,我注意到他们在从文件流(类似于下面的示例2)的方法(如ReadAllLines
)中检查null,那么为什么他们不使用EndOfStream
?使用EndOfStream和检查null有什么区别?
实施例1:
...
StreamReader std_out = myProcess.StandardOutput;
while (!std_out.EndOfStream)
{
string rLine = std_out.ReadLine();
//Do something...
}
...
实施例2:
...
string rLine;
StreamReader std_out = myProcess.StandardOutput;
while ((rLine = std_out.ReadLine()) != null)
{
//Do something...
}
...
干杯。
[在同一语句中检查null和流结束]的可能重复(http://stackoverflow.com/questions/20763353/check-for-null-and-end-of-stream-in-same-statement ) – MethodMan 2014-11-04 06:04:39
基本上检查EndOfStream是不必要的,因为如果它在Stream的末尾,它将返回'null' ..所以只需检查while((line = std_out.ReadLine())!= null)' – MethodMan 2014-11-04 06:07:08
@DJ克拉泽在我发布之前我看了一下,但并没有真正回答我的问题。基本上,我想知道使用任何一个的区别。 – 2014-11-04 08:33:20