日期:2014-05-17  浏览次数:20755 次

int 转char的问题

            char p1 = '1';
            int t = 1;
            char p2 = Convert.ToChar(t);
            Console.WriteLine(p1 == p2);


这段代码输出的是False
但是我把第3行代码改成

char p2 = Convert.ToChar(t.ToString());

就成True了
-------------------------------------
为什么Convert类里面有
public static char ToChar(int value);
这个方法,但是返回的还是False呢
char c#

------解决方案--------------------
char p2 = Convert.ToChar(t);
与下一语句等效
char p2 = (char)1;

所以p2是ASCII值为1的字符。
但执行
char p2 = Convert.ToChar(t.ToString());
后ASCII码值为49
------解决方案--------------------
ASCII,ASCII,ASCII,ASCII,ASCII,ASCII,ASCII,ASCII,你懂的!!!!!“1”的值不是1
------解决方案--------------------

using System;

namespace ConsoleApplication2
{
    class Program
    {
        static void Main(string[] args)
        {           
            char p1 = '1';            
            char p2 = Convert.ToChar(1);           
            Console.WriteLine(p1);
            Console.WriteLine(p2);
            Console.ReadLine();
        }
       
    }
}

1
?