2017-05-27 40 views
1

我试图学习在C#中的显式转换。Char到Int显式转换在C#

首先我明确地转换stringint

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值。如何获取char 1而不是ASCII值。请不要太苛刻了我的第一天,在C#;)..

+0

'Console.WriteLine((char)i);'会做 –

+0

@AlexK。 - 感谢兄弟。是的,它的工作。这就像试图将ASCII值转换回字符。为什么它被转换为'ASCII'值而不是'Int'。 –

+0

你碰到'Convert.toInt16'的重载方法,在使用'Convert.ToInt16'前使用'Int.tryParse'进行int赋值。 – Turbot

回答

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

       }