【问题标题】:How to pass dynamic value to byte array如何将动态值传递给字节数组
【发布时间】:2015-11-25 20:42:43
【问题描述】:

这是我的代码:

private void send_char_0(string R, string G, string B)
        {
            string r = R;
            string g = G;
            string b = B;
            string strData = null;
            int i = 0;
            byte[] data_array = new byte[3]{0xff,0xef,0xff};
        }

我分别在字符串 R、G、B 中引入了十六进制值,但是当我传递它们时 byte[] data_array = new byte[3]{R,G,B};->错误字符串无法转换为字节。

所以我尝试转换 dataarray[0] = Convert.ToByte(R)Convert.ToByte(0xff)--> 错误输入字符串的格式不正确为 0xff。 需要有“ff”,但我需要将它作为“oxff”传递给串口。

任何人都可以帮助我

【问题讨论】:

  • 这和 JavaScript 有什么关系?
  • 这不是javascript。
  • 为什么要将字节作为字符串传递给函数?
  • 当我通过 javascript 以字符串形式从 UI 获取 R、G、B 的值时,当我需要将字节数据传递到串行端口时,我需要将 255 的 0xff 转换为字节发送

标签: javascript c# arrays bytearray serial-communication


【解决方案1】:

您正在将字符串传递到字节数组中。 试试这个:

private void send_char_0(string R, string G, string B)
{
    byte r = byte.Parse(R,NumberStyles.HexNumber);
    byte g = byte.Parse(G,NumberStyles.HexNumber);
    byte b = byte.Parse(B,NumberStyles.HexNumber);
    byte[] data_array = new byte[3]{r,g,b};
 }

您可能需要添加一些检查这些数据是否正确,因为它来自用户,

【讨论】:

  • 嗨亚历克斯,但它仍然给我错误“输入字符串格式不正确”,因为我们正在尝试将 0xff 转换为 byte 。我尝试使用 NumberStyle.AllowHexSpecifier 但无法正常工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-23
  • 2021-11-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多