読者です 読者をやめる 読者になる 読者になる

checkpoint

自分用のIT技術系ノートです。古い情報や間違っている情報もあるので注意。

Convert.Int32(String)とInt32.Parse(String)

文字列を整数に変換したい場合に用いるメソッド二種類。
どう違うのかぱっと見分かりません。

MSDNのConvert.Int32の項を見てみると…

戻り値は、value に対して Int32.Parse メソッドを呼び出した結果得られる値です。

とのことなので、内部的にはInt32.Parseを呼んでいるものと思われます。
なのでどっち使っても同じ…と言いたいところが、異なる点が1つだけ。

引数の文字列がnull参照の場合…

  • In32.ParseはArgumentNullExceptionをスロー
  • Convert.ToInt32は例外をスローせず0を返す

という違いがあります。
しかしどちらも空文字(長さ0の文字列)を与えるとFormatExceptionをスローします。

nullがエラーにならず0に変換されるのも個人的には気持ち悪いので、Int32.Parseをお勧めします。

というか、Framework2.0以降ならInt32.TryParseを使って万事解決。