提问者:小点点

Visual Studio调试器随机跳过行


        string generatedCode = "";
        generatedCode += "            ";
        int enumFieldsLength = 12; // Set equal to number of spaces in current indentation

        for(int i = 0; i < dbTableList.Count; i++)
        { // enum
            generatedCode += dbTableList[i].DbField;
            if(i != dbTableList.Count - 1)
            {
                generatedCode += ",";

                enumFieldsLength += dbTableList[i].DbField.Length + 2; // 2 for the comma + space
                if(enumFieldsLength <= SourceCode.MAX_CHARACTERS_PER_LINE)
                {
                    generatedCode += " "; // Add space after trailing comma
                }
                else
                {
                    enumFieldsLength = 12;
                    generatedCode += "\r\n            "; // New line because exceeded maximum allowed characters per line
                }
            }
        }

我这里有一个简单的代码。 正在运行Visual Studio 2019。 Visual Studio的行为很奇怪。 在else条件中,调试器完全跳过“enumFieldsLength=12”。 即使我把它移到字符串串联语句之后,它也完全跳过它。 此外,调试器标记中的当前行变成了一个奇怪的块。

这是怎么回事,我该如何解决这个问题? 我有ReSharper,但我试过禁用它,但没用。 我还尝试清洗解决方案和清洗每个单独的项目,重建。 未选中“优化代码”。


共1个答案

匿名用户

我想通了。

我手动删除了bin和obj文件夹,然后手动重建每个单独的项目。

我不是100%确定这一行导致它开始起作用(因为我在合并之后做的其他事情都很好,加上删除bin文件夹就解决了这个问题,而没有弄乱sln),但无论如何,我也恢复了那个更改。 与我合并的那个人没有添加或删除任何文件,所以sln不应该改变(在他们的分支上也不应该改变,只是Visual Studio太奇怪了)。