C#で文字列を数値に変換するには、キャストしてもダメ。
初めてだと方法を見つけるのに結構苦労するけど、変換先のデータ型に付属のParse()という静的関数を使うことになる。
System.Int32 number = System.Int32.Parse(TextField1.Text);
これだけで、TextField1.Textというテキストが数値に変換されるんだけど、ちょっと待った!
もしテキストが数字じゃなかったら?
”.”が2つ以上入っていたら?
数値の間に”+”とかが入っていたら??
こんな数値に変換できない文字が指定された場合には、例外というものが発生する。
発生する例外は、System.FormatException という「書式がおかしいですよ」というもの。
また、文字列がnullだったり、オーバーフローしたりすると、ArgumentNullExceptionとか、OverflowExceptionとかが発生する。
これらをすべて捕捉したい場合は、System.Exception で例外処理を書くと良い。
int number;
try
{
number = System.Int32.Parse(TextField1.Text);
}
catch(System.Exception)
{
ErrorMessage.Text = "入力された数値が不正です";
return;
}