Delphi转C#:代码中#32控制字符含义及相关问题咨询
关于Delphi中
#32的含义及C#转换建议 在Delphi(以及所有Pascal衍生语言)里,#<数字>是表示字符的语法,数字对应ASCII码值。所以#32就是ASCII码为32的字符——也就是普通的空格字符,和你直接写' '的效果完全一致。
看你这段Delphi代码:
Data := '!RW 65 '+ Data +#32+ CRC_16('!RW 65 '+Data+#32) + #10
这里的#32作用很明确:作为字段分隔符,把命令段、原始数据、CRC校验值这几个部分用空格分开,同时计算CRC的时候也要把这个空格包含进去(因为CRC是基于完整的命令字符串计算的,分隔符也是有效部分)。
转换成C#的话,直接把#32替换成空格字符或者空格字符串就行,比如用字符串插值的写法会更简洁:
data = $"!RW 65 {data} {Crc16($"!RW 65 {data} ")}" + "\n";
(注:这里假设你已经实现了对应功能的Crc16方法,C#里的"\n"就对应Delphi的#10换行符)
内容的提问来源于stack exchange,提问作者FancyLord
相关产品推荐
相关产品推荐

