我正在维护一些 Java 代码,我目前正在将它们转换为 C#。
Java 代码是这样做的:
sendString(somedata + '\000');
在 C# 中,我正在尝试做同样的事情:
sendString(somedata + '\000');
但是在 '\000' 上,VS2010 告诉我“字 rune 字中的字符太多”。如何在 C# 中使用“\000”?我试图找出这个字符是什么,但它似乎是“”或某种换行符。
你知道这个问题吗?
谢谢!
最佳答案
'\0'
在 C# 中会很好。
发生的事情是 C# 看到了 \0
并将其转换为 ASCII 值为 0 的空字符;然后它又看到两个 0
s,在 字符 中是非法的(因为您使用的是单引号,而不是双引号)。空字符通常不可打印,这就是为什么当您尝试打印它时它看起来像一个空字符串。
您在 Java 中输入的是支持 octal 的字 rune 字数字。 C# 不支持字符 或 数字中的八进制文字,以努力减少编程错误。*
C# does supports Unicode literals形式 '\u0000'
其中 0000
是1-4位的十六进制数。
* 例如,在 PHP 中,如果您输入的数字前导零是有效的八进制数,它就会被翻译。如果它不是合法的八进制数,则无法正确翻译。 <? echo 017; echo ", "; echo 018; ?>
输出 15, 1
在我的机器上。
关于c# - Java 字 rune 字到 C# 字 rune 字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753509/