2017-05-27 38 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); 

       }