小弟是用C#做的,然后做了ping的程序,但是现在遇到这个在pingNet中只能返回一个值,
求指教怎么返回多个值,例如:RoundtripTime;Status;Options等这些值啊 private void button1_Click(object sender, EventArgs e)
        {
            string time,status,pingall;            for (int i = 0; i < dataGridView1.Rows.Count; i++)
            {
                if (Convert.ToString(dataGridView1.Rows[i].Cells[1].Value) != "")
                {
                    pingall = pingNet(Convert.ToString(dataGridView1.Rows[i].Cells[1].Value));
                    
                    dataGridView1.Rows[i].Cells[2].Value = pingall;
                    //dataGridView1.Rows[i].Cells[3].Value = pingall.Status.ToString();
                    //怎么能获得ping后的其他值?
                }
            }        }        public string  pingNet(string ip)
        {
            Ping pp = new Ping();
            PingReply ppResult = pp.Send(ip);
            return ppResult.RoundtripTime.ToString();
            return ppResult.Status.ToString();//这个返回值无效?
                        
            
        }

解决方案 »

  1.   

            public string[] pingNet(string ip)
            {
                Ping pp = new Ping();
                PingReply ppResult = pp.Send(ip);
                string[] returnValue = new sitrng[2];
                returnValue[0] = ppResult.RoundtripTime.ToString();
                returnValue[1] = ppResult.Status.ToString();
                return returnValue;
            }调用
    string[] pingall;
    ...
    dataGridView1.Rows[i].Cells[2].Value = pingall[0];
      

  2.   

    或者可以把整个ppResult返回去。
            public PingReply pingNet(string ip)
            {
                Ping pp = new Ping();
                return pp.Send(ip);
            }或者说这里没有太大必要提取成一个方法:
             private void button1_Click(object sender, EventArgs e)
            {
                string time,status,pingall;
                 Ping pp = new Ping();//在循环外边定义并实例化,还可以避免每次循环都创建一个对象。
                for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {
                    if (Convert.ToString(dataGridView1.Rows[i].Cells[1].Value) != "")
                    {
                  PingReply pr = pp.Send(Convert.ToString(dataGridView1.Rows[i].Cells[1].Value));
                         
                        dataGridView1.Rows[i].Cells[2].Value = pr.RoundtripTime.ToString();;
                        dataGridView1.Rows[i].Cells[3].Value = pr.Status.ToString();
                        //怎么能获得ping后的其他值?
                    }
                }
            }
      

  3.   


           return ppResult.RoundtripTime.ToString();
           return ppResult.Status.ToString();//这个返回值无效?
    逻辑问题,第一个返回了,第二个return 执行不了!