日期:2014-05-17  浏览次数:20813 次

VS2005 bug

                        for (int i = 1, j = 0; i <= 5; i++)
                        {
                            long longSwordsmenID = (long)((DataRow)htTacticInfo[byteUseTacticTag.ToString()])["SwordsmenID" + i.ToString()];
                         }



进入循环之后就找不到i了   即使窗口内输入i  返回结果是   当前上下文中不存在名称"i"


求哪位大神帮忙解答  这是什么原因造成的,  之前记得有出现过  找不到DataRow

------解决方案--------------------
找不到datarow这跟你的i有关系吗,只能说你的数据集中没有你要访问的那个索引
------解决方案--------------------
没碰到过这种奇怪的问题。
------解决方案--------------------
rebuild
------解决方案--------------------
debug db 实效了
------解决方案--------------------
重新生成(解决方案)
------解决方案--------------------
i的作用域就是在循环里,所以这是完全正常的。
for (int i = 1, j = 0; i <= 5; i++) <-- i诞生
{
                            long longSwordsmenID = (long)((DataRow)htTacticInfo[byteUseTacticTag.ToString()])["SwordsmenID" + i.ToString()];
<-- i死亡
要在循环外看到i,把i的定义写在循环外:
int i;
for (i=1; ...
------解决方案--------------------
引用:
找不到datarow这跟你的i有关系吗,只能说你的数据集中没有你要访问的那个索引


说的对


------解决方案--------------------
亲,是不是你优化编译过了
------解决方案--------------------
你把断点打在for上,当然看不到i了
你把断点打在for语句里面,就能看到了。
------解决方案--------------------
http://hi.baidu.com/happybadbaby/item/494aee41b4de00af61d7b93a
参考这个主要造成这个原因的是因为2个文件不一致导致的。调试文件和编译文件不一致导致的。
当然你也可能是别的原因不排除。