无法访问内部循环

时间:2017-05-02 06:12:53

标签: c# asp.net

我正在尝试将流程引用到已定义的标签,但我收到了此错误..

  

在goto语句的范围内没有这样的标签'IL_A44'。

我的C#代码如下:

for (i = 0; i < objAttendanceLog.LogRecords.Count; i++)
{
    if (condition1)
    {
        for (int j = i + 1; j < objAttendanceLog.LogRecords.Count - 1; j++)
        {
            if (condition2)
            {
                IL_A44:
                while (j < objAttendanceLog.LogRecords.Count - 1)
                {
                    if (condition3)
                    {
                        j--;
                        break;
                    }
                    j++;
                }
                if (j == objAttendanceLog.LogRecords.Count)
                {
                    j--;
                }
                num3 = data, 
                i = j;
                goto IL_AD8;
            }
        }
        goto IL_A44;
    }
    IL_AD8:;
}

1 个答案:

答案 0 :(得分:0)

如果两个条件&#39;是相同的事情,以下代码应该做同样的事情:

int j=0;
for (i = 0; i < objAttendanceLog.LogRecords.Count; i++)
{ 
    if (condition)
    {   
        for (j = i + 1; j < objAttendanceLog.LogRecords.Count - 1; j++)
        {
            if (condition)
            {

                while (j < objAttendanceLog.LogRecords.Count - 1)
                {
                    if (condition)
                    {
                        j--;
                        break;
                    }
                    j++;
                }
                if (j == objAttendanceLog.LogRecords.Count)
                {
                    j--;
                }
                num3 = data, 
                i = j;
                goto IL_AD8;
            }
        }

    }
    else{
         while (j < objAttendanceLog.LogRecords.Count - 1)
                {
                    if (condition)
                    {
                        j--;
                        break;
                    }
                    j++;
                }
                if (j == objAttendanceLog.LogRecords.Count)
                {
                    j--;
                }
                num3 = data, 
                i = j;
                goto IL_AD8;
    }

    IL_AD8:;
}