1

这个问题把我难住了。我有一个在循环中共享的变量,它没有递增。

有问题的变量是 elrObject.currentLocation。有两种方法可以增加它 - 如果 XML 元素为空,或者它不是。

这是代码:

if (reader.Name == "Cell")
{  
    if (reader.IsEmptyElement)
    {       
        Response.Write("i ran<br>");
        elrObject.currentLocation++;
    }       
    else
    {
        while (reader.Read())
        {           
            if (reader.IsStartElement())
            {                                           
                //labels
                if (elrObject.currentLocation >= elrObject.index && elrObject.currentLocation <= elrObject.index + elrObject.colSpan)
                    Response.Write("i ran again<br>");

                Response.Write(elrObject.currentLocation + "<br>");
                elrObject.currentLocation++;

            }
            if (reader.Name == "Cell")
            break;
        }
    }
}

我得到的输出是:
0
1
2
3
5

数字 4 是当 XML 元素为空并且顶部循环运行时。我正在增加变量,但它不会显示数字 4,它会完全跳过它并转到 5。我确信上部循环运行正常并且在下部循环之前运行,因为以下也运行:

我跑了
我又跑了

这证实了上面的循环在下面的循环之前运行....但是数字 4 正在跳过自己!我真的很感激这方面的一些帮助。

4

1 回答 1

4

它不应该显示数字 4。你没有

Response.Write(elrObject.currentLocation + "<br>");

在里面

if (reader.IsEmptyElement)

堵塞。

于 2013-02-18T20:14:29.200 回答