スポンサーリンク
※サイト運営にサーバーは必須です※
~このサイトもエックスサーバーを使用しています~
型のチェック
型をチェックするには、TryParseというメソッドを使用します。
文字列から別の型に変換する際に、変換できるかどうか確認できます。
TryParseというメソッドには以下のような効用があります。
- 型変換がうまくいかない場合はfalse、うまくいった場合はtrueを返します
- 型変換がうまくいった場合、outパラメーターを付けた引数に変換した値が入ります。
具体例を挙げます。以下では、文字列をint型に変えるソースコードです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TryCast03 { class Program { static void Main(string[] args) { int i; if (Int32.TryParse("12", out i)) Console.WriteLine("変換成功" ); else Console.WriteLine("変換失敗"); Console.WriteLine("iの値は"+i); if (Int32.TryParse("12.34", out i)) Console.WriteLine("変換成功" ); else Console.WriteLine("変換失敗"); Console.WriteLine("iの値は" + i); } } } |
実行結果
変換成功
iの値は12
変換失敗
iの値は0
int型への型変換がうまくいかなかった場合、outパラメーターを付けた引数には0が入ります。
outとは、引数を参照引き渡しすることを意味します。
outを使うことで、メソッド内で引数の値を変更した場合、メソッドの外部でも反映されるようになります。
逆に、通常の引数の取り扱いでは、メソッド内で引数に変更を加えても、それがメソッドの外部にまで反映されません。
C#7.0ではoutパラメーターを付けたまま、変数の宣言ができるようになりました。
そのため、以下のような書き方もできます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TryCast04 { class Program { static void Main(string[] args) { if (Int32.TryParse("30", out int j)) Console.WriteLine("変換成功" ); else Console.WriteLine("変換失敗"); Console.WriteLine("jの値は" + j); } } } |
実行結果
変換成功
jの値は30
ユーザーの入力を確認する
TryParseメソッドは、ユーザーの入力した値が適切かどうか判断するときに活躍します。
以下のコードは、ユーザーの入力が適切かどうか判断しています。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TryCast05 { class Program { static void Main(string[] args) { bool flg = true; while (flg) { Console.WriteLine("整数を入れてください"); string txt = Console.ReadLine(); if (Int32.TryParse(txt, out int i)) { Console.WriteLine("入力した値は" + i + "ですね"); flg = false; } else { Console.WriteLine("入力した値が不正です"); //flg = true; } } } } } |
実行結果
「aaa」「125.5」「33」と入力した結果です
整数を入れてください
aaa
入力した値が不正です
整数を入れてください
125.5
入力した値が不正です
整数を入れてください
33
入力した値は33ですね
関連記事
~プログラミングを勉強してみませんか?~
TechAcademy [テックアカデミー] は無料の体験講座が用意されているので、気軽に体験できます。
※私(サイト主)も無料体験講座を実際に受けてみました(→感想)