C# 中 Char 到 Int 的显式转换

Char to Int explicit Conversion in C#

我正在尝试学习 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);

        }
    }
}

现在的结果是491的ASCII值。如何获取 char 1 而不是 ASCII 值。请不要对我在 C# 的第一天太苛刻 ;)..

你命中了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);

               }