我的代码如下:
using (Process proc = Setupprocess(comtorun))
{
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
string output = proc.StandardOutput.ReadLine();
if (output.Contains("library:"))
{
collectoutput.Add(output.Split(":")[1]);
}
}
}
在Visual Studio中,它给了我一个内联临时变量的选项,并希望像下面那样重写它:
using (Process proc = Setupprocess(comtorun))
{
proc.Start();
while (!proc.StandardOutput.EndOfStream)
{
if (proc.StandardOutput.ReadLine().Contains("library:"))
{
collectoutput.Add(proc.StandardOutput.ReadLine().Split(":")[1]);
}
}
}
当我认为当它调用collectoutput.Add(proc.StandardOutput.ReadLine()。Split(":")[1])时,我是否正确?它实际上是读取输出的第2行而不是第1行?
答案 0 :(得分:0)
是的,你是完全正确的,这个建议引入了一个代码改变 - 实质上是一个错误。最终,没有内置的声明性方式来说.NET中的方法是纯函数。在某些情况下,这样的改变将是完全有效的,在其他地方(像这样)它会很糟糕,并且在任何情况下无法知道它是什么(没有当这是已知的 - 坏的或已知的好的时候开始手动维护的备忘单。所以:它提供这个功能的时间会有所帮助,而不会强迫它(默认情况下它不会显示为建议的更改,因为示例 - 仅在您主动选择变量时才会出现。
因此,在这种情况下:不要使用它。