为什么在此if语句中的highestOrderLowestTradeVersion
行没有被命中,我有点不知所措;在调试时,上述变量在if语句上下文中不存在。即使最后两个if语句是真实的,它也会忽略highestOrderLowestTradeVersion
这两行。我试着将列表中的变量声明移到更高的位置,而不是初始化它,并在声明后单独初始化它,但我仍然无法获得该变量的值。我的代码中有什么明显的错误吗?未达到嵌套if语句的部分
int latestOrderVersion;
int latestTradeVersion;
int lowestOrderVersion = 0;
int lowestOrderHighestTradeVersion = 0;
int highestOrderVersion = 0;
int highestOrderHighestTradeVersion = 0;
int highestOrderLowestTradeVersion = 0;
foreach (DataRow filterResult2 in filterResults2.Rows)
{
latestOrderVersion = Convert.ToInt32(filterResult2["OrderVersion"]);
latestTradeVersion = Convert.ToInt32(filterResult2["TradeVersion"]);
if (lowestOrderVersion == 0 || latestOrderVersion < lowestOrderVersion)
{
lowestOrderVersion = latestOrderVersion;
if (lowestOrderHighestTradeVersion == 0 || lowestOrderHighestTradeVersion < latestTradeVersion)
{
lowestOrderHighestTradeVersion = latestTradeVersion;
}
}
if (highestOrderVersion == 0 || latestOrderVersion > highestOrderVersion || latestOrderVersion == highestOrderVersion)
{
if (latestOrderVersion != highestOrderVersion)
{
highestOrderVersion = latestOrderVersion;
highestOrderLowestTradeVersion = 0; // never gets hit
}
if (highestOrderHighestTradeVersion == 0 || latestTradeVersion < highestOrderHighestTradeVersion)
{
highestOrderLowestTradeVersion = latestTradeVersion; // never gets hit
}
}
}
最后两个......还有很多的if语句,而“highestOrderTradeVersion”变量显示了很多。所以很难解释你实际上指的是哪一行代码。尝试评论他们... – ChrisCM
你确定你运行这个版本的代码?做一个干净的解决方案(确保bin/obj文件夹是空的),然后重新构建一切。之后重试。 – Fredou
这为我寻找一个典型的你的pdb文件和你当前的cs类之间的对齐方式。这意味着您需要重新构建整个应用程序才能正确调试。批量构建也有帮助。也尝试重新启动Visual Studio。 – Rober