visual studio 2017内联临时变量

时间:2018-05-07 03:14:09

标签: c# visual-studio-2017

我的代码如下:

  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行?

1 个答案:

答案 0 :(得分:0)

是的,你是完全正确的,这个建议引入了一个代码改变 - 实质上是一个错误。最终,没有内置的声明性方式来说.NET中的方法是纯函数。在某些情况下,这样的改变将是完全有效的,在其他地方(像这样)它会很糟糕,并且在任何情况下无法知道它是什么(没有当这是已知的 - 坏的或已知的好的时候开始手动维护的备忘单。所以:它提供这个功能的时间会有所帮助,而不会强迫它(默认情况下它不会显示为建议的更改,因为示例 - 仅在您主动选择变量时才会出现。

因此,在这种情况下:不要使用它。