编译器使用Port.Write的char重载而不是byte

时间:2016-03-03 12:17:20

标签: c# serial-port

我尝试Port.Write一个字节变量到一个串口但编译器仍然给我一个错误

  

无法将字节转换为char []

它看起来使用了错误的重载(char [],int,int)而不是(byte,int,int)。如何强制编译器使用正确的? 这是我的代码:

private void sendbtn_Click(object sender, EventArgs e)
{
    byte temp;
    temp = (byte) 0x01;
    //Wyslij(sndbox.Text);
    Wyslij(temp, 0, 1);
}
private void Wyslij(byte buffer, int offset, int count)
{
    try { Port.Write(buffer, offset, count); }
#if DEBUG
    catch { return; }
#else
    catch { MessageBox.Show( "Nie można zapisać do portu\nPrawdopodobnie port jest zamknięty."); }
#endif
}

1 个答案:

答案 0 :(得分:3)

没有接受byte参数的重载。有一个重载接受byte[]SerialPort.Write (Byte[], Int32, Int32),但您需要重写所有代码。

private void sendbtn_Click(object sender, EventArgs e)
{
    byte temp;
    temp = (byte)0x01;
    //Wyslij(sndbox.Text);
    Wyslij(new[] { temp }, 0, 1);
}

private void Wyslij(byte[] buffer, int offset, int count)
{
    try { Port.Write(buffer, offset, count); }
#if DEBUG
    catch { return; }
#else
    catch { MessageBox.Show( "Nie można zapisać do portu\nPrawdopodobnie port jest zamknięty."); }
#endif
}