Operator '&' cannot be applied to operands of type 'string' and 'int'
我正在将字符串转换为十六进制,然后执行
- 只是一个细节: ToCharArray() 是不必要的。 class string : IEnumerable<char>
-
我也用 C 语言做过,也提供了代码。所以只标记:)
-
当 ToString() 能够自行处理时,为什么要创建一个完整的方法来执行此操作,这似乎很愚蠢。
hexoutput 是一个字符串;字符串和整数之间没有定义的 & 操作 - 你在问题中打错了吗?如果您尝试应用字节掩码,则当值是某种整数/字节时,您必须这样做;不是字符串。
例如,以下是可行的,但有点毫无意义:
1
| buffer[0] = (byte) (Convert.ToByte(hexoutput, 16) & 0xFF); |
还有一个重大错误是您的 hexoutput 变量是在循环内部定义的,但在外部访问,再次表明显示的代码不是实际代码 - 这会产生编译器错误:
The name 'hexoutput' does not exist in the current context
- 很抱歉打字错误。好吧,现在在外面声明了 hexoutput,这似乎工作正常 :)
-
如果 WaitXMS 是 TextBox,则通过 WaitXMS.Text 属性从中获取文本。
-
@OlivierJacot-Descombes:WaitXMS 是我的视图模型类中的文本框属性。
您正在尝试在字符串(十六进制输出)和整数(0xFF)之间进行按位与。你不能那样做。
但归根结底,如果您的目标是拥有一个字节数组,那么您为什么首先将其转换为十六进制格式的字符串?您应该能够:
1
| buffer[0] = value & 0xFF; |