* U K I Y A H O N P O *
Nel mezzo del cammin di nostra vita mi ritrovai per una selva oscura,
che la diritta via era smarrita.
リロード   新規 下位ページ作成 編集 凍結 差分 添付 コピー 名前変更   ホーム 一覧 検索 最終更新 バックアップ リンク元   ヘルプ   最終更新のRSS
浮子屋商店もよろしく。

C#コード断片/2.0/文字列をint型に変換する の変更点

Top > C#コード断片 > 2.0 > 文字列をint型に変換する

* [2.0]文字列で int 型を有効にする [#y47e7119]

.NET2.0から int.TryParse() が実装されたので、
コストの大きな例外を使わなくても良くなった。

** 従来のコード [#bda07a32]

#code(Csharp,nooutline){{
int num=0;
try{
  num=int.Parse(str);
  // code for success
}catch(FormatException){
  // code for failure
}
}}

** .NET2.0からのコード [#nde6c5ab]

#code(Csharp,nooutline){{
int num=0;
int val;
bool result=int.TryParse(str,out val)
if(result){
  num=val;
  // code for success
}else{
  // code for failure
}
}}

** 補足 [#o3e5892e]

int.TryParse() は、変換に失敗すると渡されたintに 0を格納する。
よって、失敗したら0に初期化する場合は if 文の必要はない。
- クラス・ライブラリのメソッド引数でout指定させるって珍しいよね。out使うと必ずFxCopに怒られるけど、そこんトコどうなんだろう? -- Musi_chan &new{2006-03-06 (月) 17:44:55};
- 確かに珍しいかも。でもまあ、atoiみたく、out使わずにint返す(失敗時0)よりは理にかなってるんでせう。 -- 浮子屋 &new{2006-03-06 (月) 19:22:17};

#comment