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 "被调试器完全跳过。即使我把它移到字符串连接语句之后,它也完全跳过了它.此外,调试器标记中的当前行成为一个奇怪的块。
一个可能相关的问题是,关联的if语句不会让我选择代码行(它只是选择它下面的收尾括号)。而选择开头的括号就会出现奇怪的情况。
enumFieldsLength=12的选择显示出奇怪的情况(选择代码前的一些空格),但它不会让我选择generatedCode+=......,它只是把我踢到收尾括号。
此外,即使我还在for循环内,调试器也会在循环外做标记。请看这张图,调试器以一种毫无意义的方式高亮了循环外的部分语句。
这是怎么回事,我该如何解决这个问题?我有ReSharper,但我试过禁用它,但没有帮助.我也试过清理解决方案和清理每个单独的项目,重建。"优化代码 "没有被选中。