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

C#关于while语句
        private void RefreshAllUser(Msg msg)
        {
            int length = LV_SysUser.Items.Count;
            while (length > 0)
            {
                int i = 0;
                String IP = LV_SysUser.Items[i].SubItems[1].Text.ToString();
                LV_SysUser.Items[i].SubItems[5].Text = "0";
                msg.Msgtype = MsgType.PaperAlive;
                SendMsgToOne(IPAddress.Parse(IP), 9601, msg);
                length--;
                i++;
            }
        }
各位大神,此方法中的i在while语句内部定义,在while结束之前的i++有用吗?我感觉是没用的,那这样的话永远操作的都是Item[0],写源码的也是大神,应该也不会犯这么低级的错误吧,求指导
while

------解决方案--------------------
while每次进来,i都是0,可以把i定义到while循环的外边,i每次会+1.不知道是不是你想要的结果。
不是的话再讨论。
private void RefreshAllUser(Msg msg)
        {
            int length = LV_SysUser.Items.Count;

            int i = 0;

            while (length > 0)
            {
                String IP = LV_SysUser.Items[i].SubItems[1].Text.ToString();
                LV_SysUser.Items[i].SubItems[5].Text = "0";
                msg.Msgtype = MsgType.PaperAlive;
                SendMsgToOne(IPAddress.Parse(IP), 9601, msg);
                length--;
                i++;
            }
        }
------解决方案--------------------
不要迷信大神,
从你贴出的代来看,确实i一直是0,
同事的代码有问题,要多沟通,才不会出现bug套bug的情况,奇怪的问题最好有KB
------解决方案--------------------
是不是有问题,得先确认这段程序的目的,先找原作者确认最好。
没人规定 int i=0 必须放在 while 外面,也没有人规定循环中的数组必须要被遍历,要看作者意图。
------解决方案--------------------
没用你就删掉呗!

一个团队中,真正的工作目标是“让测试通过”,而不是什么“写代码”。如果测试目标很低级,那么不管这个团队中有几个自称很nb的变成人员,实际上这个团队的层次都很低。而如果软件工程做