数字からなる文字列を数値に変換するには、「TIPS:文字列を数値に変換するには?」で解説しているように、Int32型やDouble型などのParseメソッドが利用できる。
しかしParseメソッドは、変換しようとしている文字列が正しい形式でない場合や、値がその数値型の範囲に収まっていない場合には変換に失敗し、例外を発生する。例外の発生にはコストがかかるため、変換が失敗する頻度が高いケースではアプリケーションのパフォーマンスが悪くなってしまう。
変換時に例外が発生しないようにするためには、あらかじめ文字列が数値として有効かどうかを精査する必要があるが、.NET Framework 2.0ではそのような処理を行った後に変換を行ってくれるTryParseメソッドが新しく追加されており、従来のParseメソッドの代わりに利用できる。
例外を発生しないTryParseメソッド
TryParseメソッドは、変換に失敗しても例外を発生しない。変換が成功した場合には戻り値としてtrueを返し、失敗した場合にはfalseを返す。
string number = "123456";
int output;
bool result = Int32.TryParse(number, out output);
Dim number As String = "123456"
Dim output As Integer
Dim result As Boolean = Int32.TryParse(number, output)
TryParseメソッドの第1パラメータには変換する文字列を指定する。指定可能な文字列の形式は従来のParseメソッドと同一である。
第2パラメータには変換された数値を受け取る数値型の変数を指定する(C#の場合にはoutキーワードが必須)。なお、変換に失敗した場合には、第2パラメータに指定した変数に0が代入される。
Copyright© Digital Advantage Corp. All Rights Reserved.