我正在维护一些我正在转换为C#的Java代码。Java char字符到C#char literal
的Java代码是这样做的:
sendString(somedata + '\000');
而在C#我试图做同样的:
sendString(somedata + '\000');
但在 '\ 000' VS2010告诉我即“字符文字中的字符太多”。我如何在C#中使用'\ 000'?我试图找出这个角色是什么,但它似乎是“”或某种类型的换行符。
你知道这个问题什么?
谢谢!
我正在维护一些我正在转换为C#的Java代码。Java char字符到C#char literal
的Java代码是这样做的:
sendString(somedata + '\000');
而在C#我试图做同样的:
sendString(somedata + '\000');
但在 '\ 000' VS2010告诉我即“字符文字中的字符太多”。我如何在C#中使用'\ 000'?我试图找出这个角色是什么,但它似乎是“”或某种类型的换行符。
你知道这个问题什么?
谢谢!
'\0'
将在C#就好了。
发生了什么事是,C#看到\0
并将其转换为NUL字符为0的ASCII值;然后它看到两个0
s,这是一个字符内非法的(因为您使用单引号,不是双引号)。 nul字符通常是不可打印的,这就是为什么当您尝试打印时它看起来像一个空字符串。
您在Java中输入的内容是支持的octal数字符文字。 C#不支持字符或数字中的八进制文字,以减少编程错误。 *
形式'\u0000'
其中0000
是一个1-4位数字的十六进制数的C# does supports Unicode literals。在PHP中,例如,如果您输入的数字前导零是一个有效的八进制数,则会被翻译。如果它不是合法的八进制数,则不能正确翻译。 <? echo 017; echo ", "; echo 018; ?>
在我的机器上输出15, 1
。
这是一个null character,也被称为NUL。你可以在C#中将它写成'\ 0'。
在C#中,字符串“\ 000”表示三个字符:空字符,后跟两个零数字。由于字符文字只能包含一个字符,这就是为什么你会得到错误“字符字面值太多的字符”。
而且我们都被命名为马克......所以对你也是+1。 – 2010-05-02 13:04:34
嘿......我们写的实际上是一样的。 +1 – 2010-05-02 13:03:38
感谢你们俩,它似乎工作得很好:) – Kristoffersen 2010-05-02 14:35:03