【问题标题】:Why does Console.WriteLine(3 + 'z' + 4); result in 129 in C#? [duplicate]为什么 Console.WriteLine(3 + 'z' + 4);在 C# 中导致 129? [复制]
【发布时间】:2018-10-23 17:15:16
【问题描述】:

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

这是某种错误,因为您不应该写这样的东西吗? 提前致谢!

【问题讨论】:

  • 从 char 到 int 的隐式转换。我确定某处有重复。
  • 'z'的字符编码为:122,加法前转换为整数。
  • 这是char + char = int? Why? 的副本,它本身就是一个副本。我认为我们不需要关于这个话题的另一个问题。

标签: c# parameters char concatenation console.writeline


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-08
      • 2013-08-22
      • 2014-01-12
      • 2012-01-29
      • 1970-01-01
      • 2021-10-20
      • 2012-04-04
      • 1970-01-01
      相关资源
      最近更新 更多