Dim i As Integer = 0
        Dim dd() As Byte
        i = cmd.Length        If i = 0 Then Exit Sub   这里应该是假如i=0就退出循环
        If i Mod 2 = 1 Then Exit Sub  假如求余等于1的话也退出循环
        i = i / 2 - 1        ReDim dd(i)        For ii As Integer = 0 To i
            dd(ii) = CByte("&H" & cmd.Substring(2 * ii, 2))
        Next
我在翻译到C#的环境中出现了无法将类型int隐式转换为bool的错误
不知道这段代码在C#的环境中应该如何改写呢
谢谢各位了

解决方案 »

  1.   

    做一个if判断吧 或者转成byte型
      

  2.   

    强制转换
    bool.Parse("")
      

  3.   

                int i = 0;
                byte[] ii;
                i = cmd.Length;
                if(i=0)
                {
                    break;
                }
                if (i % 2 = 1)
                {
                    break;
                }
                i = i / 2 - 1;            这样写就出现了那个隐式转换的错误
      

  4.   

    原来整段代码如下
    Sub send_cmd(ByVal cmd As String)
            '将03050305转换成byte()
            '然后发送出去
            Dim i As Integer = 0
            Dim dd() As Byte
            i = cmd.Length        If i = 0 Then Exit Sub
            If i Mod 2 = 1 Then Exit Sub
            i = i / 2 - 1        ReDim dd(i)        For ii As Integer = 0 To i
                dd(ii) = CByte("&H" & cmd.Substring(2 * ii, 2))
            Next        If SP1.IsOpen Then
                SP1.Parity = IO.Ports.Parity.Space
                SP1.Write(dd, 0, dd.Length)
            End If
        End Sub
      

  5.   

    int i=cmd.length;
    if(i==0 || i%2==1)return;
    i=i/2;
    byte []dd=new byte[i];
    for(int j=0;j<i;j++)dd(j)=CByte("&H" & cmd.Substring(2 * ii, 2))
      

  6.   

    if(i=0)
    这个有明显错误
    应该是==
    http://www.mybuffet.cnhttp://www.mystruggle.com.cn
      

  7.   

      private static void ll()
      {
        string cmd = "152034";
        int i = cmd.Length;
        if (i == 0 || i % 2 == 1) return;
        i = i / 2;
        byte[] dd = new byte[i];
        for (int j = 0; j < i; j++)
        {
          dd[j] = byte.Parse( cmd.Substring(2 * j, 2),System.Globalization.NumberStyles.AllowHexSpecifier);
        }
        for (int j = 0; j < i; j++)
        {
          Console.WriteLine(dd[j]);
        }
      }
    运行结果:
    21
    32
    52
      

  8.   

    if (i % 2 = 1)应该这样写吧
    if(i%2==1)
    if垮弧里应该用双等于(**==**),返回的是true和false
      

  9.   

    int i = 0;
      byte[] ii;
      i = cmd.Length;
      if(i==0)//C#中等于是== ,=是符值符号
      {
      break;
      }
      if (i % 2 == 1) //C#中等于是== ,=是符值符号
      {
      break;
      }
      i = i / 2 - 1;