ArrayList asd=new ArrayList();
asd.Add(222);
this.Text=((byte)asd[0]).ToString();
//or this.Text=((int)asd[0]).ToString();byte[] asq=new byte[1];
asq==(byte)asd[0];这哪边有问题?

解决方案 »

  1.   

    asq==(byte)asd[0];//这句有问题首先, "=="是关系运算符, 用在这里是通不过编译的, 即使能通过编译, 也没有意义
    改成: asq = (byte)asd[0];后的问题是:
    asq是数组, 而(byte)asd[0]不是改成asq[0] = (byte)asd[0];可通过编译, 但运行时会发生错误.改成asq[0] = byte.Parse(asd[0].ToString());即可
      

  2.   

    上面是笔误,
    应该是这样
    ArrayList asd=new ArrayList();
    asd.Add(222);
    byte[] asq=new byte[1];
    asq[0]=(byte)asd[0];
    为什么不能转换?(byte[])P_asd.ToArray(typeof(byte));
    这样也有问题.
      

  3.   

    笔误
    (byte[])asd.ToArray(typeof(byte));
      

  4.   

    asd.Add(222);
    这一句中的222是一个int型的变量,在取这个值的时候必须先显示转换成int,不能直接转换成byte类型,这一句
    asq[0]=(byte)asd[0];
    应该改成
    asq[0]=(byte)(int)asd[0];也可以这样:
    ArrayList asd=new ArrayList();
    asd.Add((byte)222);
    byte[] asq=new byte[1];
    asq[0]=(byte)asd[0];
      

  5.   

    asq[0]=(byte)asd[0];当然不能转了,asd[0]存放的是Int32类型的数据(虽然装箱之后是object,但拆箱之后还是Int32类型的),试图从Int32直接转换成byte,运行时肯定会抛异常。可以用
    asq[0]=Convert.ToByte(asd[0]);
      

  6.   

    不能这样转换ArrayList asd=new ArrayList();
    asd.Add(222);
    int[] asq=new int[1];
    asq[0]=(int)asd[0];
    应该可以