为什么Console.WriteLine(3 +'z'+ 4);在C#中导致129?

时间:2018-10-23 17:15:17

标签: c# parameters char concatenation console.writeline

这是他们在我的课程中所包含的内容,只是想知道为什么要这样做,以及他们试图用它来显示什么,但似乎无法弄清楚。尝试将字符连接到数字时,这是某种原则吗? 我以为'z'是一个字符是正确的吗,因为它在这里用单引号引起来?

这是否是某种错误,因为您不应该这样写? 预先感谢!

2 个答案:

答案 0 :(得分:3)

z是char值,char基本上是一个数字。 z将隐式转换为intz代码为122),这就是3 + 'z' + 4 == 129的原因。它将被转换为int,因为在语句3 + 'z'3int,所以加法的结果也是int

答案 1 :(得分:0)

在C#中,char是一个16位数字值,代表一个Unicode character。因此,在您的情况下,z被隐式评估为122。因此3 + 122 + 4等于129