我正在维护一些Java代码,现在正在将其转换为C#。
Java代码正在执行以下操作:
sendString(somedata +'\000');
而在C#中,我也想这样做:
sendString(somedata +'\000');
但在'\000'处,VS2010会提示"字符文字中的字符太多"。我该如何在C#中使用'\000'?我已经试图找出该字符是什么,但它似乎是一个空格或某种换行符。
您对此问题了解吗?
谢谢!
'\0'
在C#中是可以直接使用的。
C#会将\0
转换为ASCII值为0的空字符;然后它看到了另外两个0
,这在字符中是非法的(因为你使用的是单引号而不是双引号)。空字符通常无法打印,这就是为什么在尝试打印时它看起来像一个空字符串。
在Java中,你输入的是支持八进制数字的字符字面量。 C#不支持字符或数字中的八进制字面量,以减少编程错误。*
C#支持Unicode字面量,格式为'\u0000'
,其中0000
是1-4位十六进制数。
* 例如,在PHP中,如果您输入具有前导零的数字,该数字是有效的八进制数,则会被翻译。 如果它不是合法的八进制数,则无法正确翻译。 <? echo 017; echo ", "; echo 018; ?>
在我的机器上输出15, 1
。