1

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

首先我明确转换stringint

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

        }
    }
}

它起作用了,结果是:1234

现在我尝试转换charint

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

        }
    }
}

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

4

1 回答 1

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);

               }
于 2017-05-27T15:08:48.930 回答