c#即使在false循环中也会执行

时间:2014-09-24 17:31:01

标签: c# asp.net if-statement

我正在尝试使用基本的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),它通常是一个参数

1 个答案:

答案 0 :(得分:3)

如果您的二进制文件和PDB文件不同步,则可以看到此效果。如果您使用更新的PDB,但使用旧的二进制文件,那肯定会解释这种情况。

解决此问题的最简单方法是彻底清理并重建所有内容。正确删除binobj文件夹中的所有内容。您还应该重新启动正在使用的IIS实例。