private int fenxi(string s) //获取mac地址后面一个字节的帧数(调整为10进制)
        {
            return int.Parse(s.Substring(s.IndexOf(comboBox2.Text) + 8, 1)) * 16 +int.Parse(s.Substring(s.IndexOf(comboBox2.Text) + 9, 1));        }
怎么上面加红字部分出现错误,提示:输入字符串的格式不正确。
哪里有错呀,我蒙了呀,我看不出来了呀

解决方案 »

  1.   

    又是一个典型:return int.Parse(s.Substring(s.IndexOf(comboBox2.Text) + 8, 1)) * 16 +int.Parse(s.Substring(s.IndexOf(comboBox2.Text) + 9, 1));这样都写到一块,debug非常难。多定义个变量,不好么?
    拆开再debug下。var index1 = s.IndexOf(comboBox2.Text);
    var subStr1 = s.Substring(index1 + 8, 1);
    var num1 = int.Parse(subStr1) * 16;
    var index2 = s.IndexOf(comboBox2.Text);
    var subStr2 = s.Substring(index2 + 9, 1);
    var num2 = int.Parse(subStr2) * 16;不过你要16进制转10进制的话:
    Convert.ToInt32("FF", 16) 
      

  2.   

    你打印出
    s.Substring(s.IndexOf(comboBox2.Text) + 8, 1))
    s.Substring(s.IndexOf(comboBox2.Text) + 9, 1))分别看是不是数字就可以了
      

  3.   

    s.Substring(s.IndexOf(comboBox2.Text.Trim()) + 8, 1))
    s.Substring(s.IndexOf(comboBox2.Text.Trim()) + 9, 1))单步调试