[2.0]文字列で int 型を有効にする
.NET2.0から int.TryParse() が実装されたので、
コストの大きな例外を使わなくても良くなった。
従来のコード
0
1
2
3
4
5
6
| | int num=0;
try{
num=int.Parse(str);
}catch(FormatException){
}
|
.NET2.0からのコード
0
1
2
3
4
5
6
7
8
| | int num=0;
int val;
bool result=int.TryParse(str,out val)
if(result){
num=val;
}else{
}
|
補足
int.TryParse() は、変換に失敗すると渡されたintに 0を格納する。
よって、失敗したら0に初期化する場合は if 文の必要はない。
- クラス・ライブラリのメソッド引数でout指定させるって珍しいよね。out使うと必ずFxCopに怒られるけど、そこんトコどうなんだろう? -- Musi_chan
- 確かに珍しいかも。でもまあ、atoiみたく、out使わずにint返す(失敗時0)よりは理にかなってるんでせう。 -- 浮子屋