C#中int转char后无值问题:为何转换后chr2无内容?
问题分析与解决
核心原因
你混淆了字符字面量和字符对应的ASCII编码值:
char chr1 = '9':这里的'9'是字符字面量,它对应的ASCII编码值是57int 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
相关产品推荐
相关产品推荐

