You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

C#中int转char后无值问题:为何转换后chr2无内容?

问题分析与解决

核心原因

你混淆了字符字面量和字符对应的ASCII编码值:

  • char chr1 = '9':这里的'9'是字符字面量,它对应的ASCII编码值是57
  • int num = 9:直接把数值9强制转成char时,得到的是ASCII编码为9的字符——也就是制表符(Tab),这个字符是不可见的,只会让光标移动,自然和'9'不相等。

修正代码

要让int转成对应的数字字符,需要把数值加上数字字符'0'的ASCII值,或者用Convert类的方法实现:

char chr1 = '9';
int num = 9;
// 方法1:通过ASCII编码值计算转换
char chr2 = (char)(num + '0');
// 方法2:使用Convert类的方法
// char chr2 = Convert.ToChar(num + '0');

if(chr1 == chr2)
   Console.WriteLine("It worked");
else 
   Console.WriteLine("It did not work");
Console.WriteLine(chr2.GetType().Name);
Console.Write(chr2);

修正后运行结果

It worked
Char
9

内容的提问来源于stack exchange,提问作者ASC

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 00:30:21