我正在尝试使用基本的if else案例,但无论如何都会执行if。
这是在后端,aspx.cs文件中找到的代码。
if (1==2)
{
// 22/09/2014 12:00:00 AM for en
//format date for submit
Dateformatted = this.DateField.Value.ToString();
DateSplit = Dateformatted.Split('/');
yearAt0 = DateSplit[2].Split(' ');
Datetosubmit = yearAt0[0] + "/" + DateSplit[1] + "/" + DateSplit[0] + " 00:00:00";
}
else
{
// 2014-09-22 00:00:00 for fra
//format date for submit
Dateformatted = this.DateField.Value.ToString();
DateSplit = Dateformatted.Split('-');
dayAt0 = DateSplit[2].Split(' ');
Datetosubmit = DateSplit[0] + "/" + DateSplit[1] + "/" + dayAt0[0] + " 00:00:00";
}
这是我得到的错误(第1209行为红色):
System.IndexOutOfRangeException: Index was outside the bounds of the array.
Line 1207: string Dateformatted = this.DateFieldEdit.Value.ToString();
Line 1208: string[] DateSplit = Dateformatted.Split('/');
Line 1209: string[] yearAt0 = DateSplit[2].Split(' ');
Line 1210: string Datetosubmit = yearAt0[0] + "/" + DateSplit[1] + "/" + DateSplit[0] + " 00:00:00";
Line 1211:
这清楚地表明执行了if语句的false部分内的代码。是否有一个原因?我怎样才能解决这个问题?
注意:为了简化示例,添加了if(1 == 2),它通常是一个参数
答案 0 :(得分:3)
如果您的二进制文件和PDB文件不同步,则可以看到此效果。如果您使用更新的PDB,但使用旧的二进制文件,那肯定会解释这种情况。
解决此问题的最简单方法是彻底清理并重建所有内容。正确删除bin
和obj
文件夹中的所有内容。您还应该重新启动正在使用的IIS实例。