字节数组复制到c#中的另一个字节数组

时间:2014-08-29 04:29:02

标签: c# serial-port

这是我的代码。当我运行时,第一个字节保存在tempbuf的第0个位置。但是当我得到第二个字节时,第一个值在tempbuf中被清除: - (

private void serialPort1_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    int bytes = serialPort1.BytesToRead;
    byte[] byte_buffer = new byte[200];
    byte[] tempbuf = new byte[200];
    byte[]tempbuf2=new byte[200];
    byte[] ar = new byte[20];
    byte[] ssd = new byte[4];
    byte[] ctrl = new byte[20];

     string pp = "";
     string ll = "";

     serialPort1.Read(byte_buffer, 0, bytes);



     if (i == 0)
     {
        index = byte_buffer[0];
     }
      tempbuf[q++] = byte_buffer[0];
     i++;
     if (i == 200)
     {

      array[index] = TestSerializer.MarshalToStructureArray(tempbuf, tempbuf.Length);
      if (textBox30.InvokeRequired)
      {

     this.Invoke(((MethodInvoker)delegate
      {
       textBox30.Text = index.ToString();
     }));
    }
    i = 0;
    }
   if (q == 200)
    {


   q = 0;
}

1 个答案:

答案 0 :(得分:1)

我通过将tempbuf声明为静态字节数组来解决这个问题:

static byte[] tempbuf = new byte[200];