当前位置: 代码迷 >> C# >> VS2005 bug,该怎么处理
  详细解决方案

VS2005 bug,该怎么处理

热度:4909   发布时间:2013-02-25 00:00:00.0
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个文件不一致导致的。调试文件和编译文件不一致导致的。
当然你也可能是别的原因不排除。
  相关解决方案