Java字符字面量转换为C#字符字面量

4

我正在维护一些Java代码,现在正在将其转换为C#。

Java代码正在执行以下操作:

sendString(somedata +'\000');

而在C#中,我也想这样做:

sendString(somedata +'\000');

但在'\000'处,VS2010会提示"字符文字中的字符太多"。我该如何在C#中使用'\000'?我已经试图找出该字符是什么,但它似乎是一个空格或某种换行符。

您对此问题了解吗?

谢谢!

2个回答

6

'\0'在C#中是可以直接使用的。

C#会将\0转换为ASCII值为0的空字符;然后它看到了另外两个0,这在字符中是非法的(因为你使用的是单引号而不是双引号)。空字符通常无法打印,这就是为什么在尝试打印时它看起来像一个空字符串。

在Java中,你输入的是支持八进制数字的字符字面量。 C#不支持字符或数字中的八进制字面量,以减少编程错误。*

C#支持Unicode字面量,格式为'\u0000',其中0000是1-4位十六进制数。

* 例如,在PHP中,如果您输入具有前导零的数字,该数字是有效的八进制数,则会被翻译。 如果它不是合法的八进制数,则无法正确翻译。 <? echo 017; echo ", "; echo 018; ?> 在我的机器上输出15, 1


呵呵...我们写的几乎一样。+1 - Mark Byers

4
那是一个null character,也称为NUL。在C#中可以写成'\0'。
在C#中,字符串"\000"表示三个字符:空字符,后跟两个零数字。由于字符文字只能包含一个字符,这就是为什么会出现错误消息“字符文字中的字符太多”。

我们两个都叫马克...所以你也加一分。 - Mark Rushakoff

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接