等效于在c ++上将char分配给c#

时间:2018-07-29 04:15:07

标签: c# c++ equivalent

有人知道如何在c#中实现以下c ++代码

c ++

char t = '\0';
t += (char)3;

t的输出等于'\ x3'

如果我在c#中实现相同的代码

char t = '\0';
t += (char)3;

输出将不同t ='\ u0003'

如何在c#中获得相同的结果? 谢谢

1 个答案:

答案 0 :(得分:3)

在两种语言中,转义序列\xnn代表一个具有指定字节值nn的十六进制字符。

在两种语言中,转义序列\unnnn代表Unicode代码点nnnn

在C#使用的编码中,字节值3对应于Unicode代码点U + 0003。这就是C#输出为\u0003的原因。

两种语言的代码都做大致相同的事情,并且两种代码运行后,两个t将存储3的值。区别在于输出的格式。我不知道如何在C#中获得\u0003作为输出。 Console.WriteLine将打印出字符,而不是其Unicode代码点。

由于C#char的表示方式与C ++中的表示方式不同,因此在C#中实际上无法获得相同的输出。 C ++ char通常为1个字节,而C#char s与ushort一样大。