我有以下条件。
Console.WriteLine(Convert.ToChar(65)); // Gives 'A'
Console.WriteLine(Convert.ToChar(65) + 1); // Gives 66; Expectation was 'A1'
Console.WriteLine(Convert.ToChar(65) + "1"); // Gives 'A1'
Run Code Online (Sandbox Code Playgroud)
这是为什么?我想要第三种情况。
你的期望是错误的。该char类型是数字型,可容纳整数。所以当你做
Convert.ToChar(65)
Run Code Online (Sandbox Code Playgroud)
你仍然有一个值为 65 的数字。所以当你这样做时
Convert.ToChar(65) +1
Run Code Online (Sandbox Code Playgroud)
您将 char 隐式转换回 int 并添加 +1,因此您得到 66
char 区别于其他数字类型的特殊之处在于,当您将其转换为字符串时,它会显示为我们从字母表中知道的“字符”。因此,当你做
Convert.ToChar(65) + "1"
Run Code Online (Sandbox Code Playgroud)
值为 65 的字符被隐式转换为字符串 ( "A"),然后与字符串连接"1"。因此结果是"A1"
| 归档时间: |
|
| 查看次数: |
129 次 |
| 最近记录: |