C#中的Char到Int显式转换

时间:2017-05-27 14:40:01

标签: c# explicit-conversion

我试图在c#中学习显式转换。

首先,我明确将string转换为int

namespace MyfirstCSharpCode
{
    class Program
    {
        static void Main(string[] args)
        {
            string str = "1234";
            int i = Convert.ToInt16(str);
            Console.WriteLine(i);

        }
    }
}

它有效,结果是:1234

现在我尝试将char转换为int

namespace MyfirstCSharpCode
{
    class Program
    {
        static void Main(string[] args)
        {
            char str = '1';
            int i = Convert.ToInt16(str);
            Console.WriteLine(i);

        }
    }
}

现在结果为49,ASCII值为1。如何获取char 1而不是ASCII值。请不要在c#的第一天太苛刻;)..

1 个答案:

答案 0 :(得分:1)

您点击了Conver.ToInt16(char)的重载方法,char是UTF-16代码单元,表示1是49.您可以使用Int16.TryParse来安全地解析数字(需要在16位符号)以获得有效整数。

               string str = "1";  //  use string if your number e.g 122
               short number;  // convert to 16 bit signed integer equivalent.
               if (Int16.TryParse(str, out number))
               {  
                   Console.WriteLine(number);

               }