C#-没有简单的方法将十六进制和ASCII连接为单个字符串

时间:2019-05-29 17:33:43

标签: c#

在Python中,我可以将hex和ascii都连接为一个字符串,然后将其发送到我要控制的设备中

   _startTransmit = "\x02"
   _channel = 7
   command_string = _startTransmit + "PGM:" + str(_channel) + ";"
try:
  written = conn.write(command_string.encode('utf-8'))

SO Answer使其看起来似乎是在C#中构建字节数组是唯一的方法

因此,似乎没有类似Python中的C#串联十六进制和ascii的方法。我说得对吗?

1 个答案:

答案 0 :(得分:2)

我想看看在“字符串”之前使用字符串插入器运算符$:

var _startTransmit = (char)0x02; //ints can be written in 0xFF format in the source code and cast to char e.g. (char)0x41 is a capital A
var _channel = 7; 
var command_string = $"{_startTransmit}PGM:{_channel};"

最后一行是用于以下内容的语法糖:

var command_string = string.Format("{0}PGM:{1};", _startTransmit, _channel);

{括号}中的内容可以具有格式说明符,例如,将_channel填充为前导空格,零等的4个字符{_channel:0000}-参见https://docs.microsoft.com/en-us/dotnet/api/system.string.format?view=netframework-4.8