2017-05-27 21 views
1

私はC#で明示的な変換を習得しようとしていました。C#で明示的に変換する文字から暗黙の変換へ

まず私は明示的にそれが働いたint

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

     } 
    } 
} 

stringを変換し、結果は次のとおりです。

1234は、今私はint

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

     } 
    } 
} 

charを変換しようとしましたが、今、結果があります49、ASCII値は1。 ASCII値の代わりに文字1を取得する方法。 C#での私の最初の日、あまりにも過酷なことがないようにしてください;)...

+0

'Console.WriteLine((char)i);'それは –

+0

@AlexKです。 - ありがとう。 ASCII値をCharacterに変換しようとするようなものです。なぜそれが 'Int'ではなく' ASCII'値に変換されるのですか? –

+0

'Convert.toInt16'のオーバーロードメソッドをヒットし、' Convert.ToInt16'を使う前にintの代入に 'Int.tryParse'を使用してください。 – Turbot

答えて

1

あなたはConver.ToInt16(char)のオーバーロードメソッドを押すと、charはUTF-16コード単位で、1を表すことはあなたが安全にInt16.TryParseを使用することができます49です有効な整数を取得するために数(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); 

       } 
関連する問題