私は、指定された文字列が有効な整数かどうかを判断しようとする次のコードを持っています。それが整数でInt32の有効範囲内にない場合は、Int32.MaxValueより大きいかInt32.MinValueより小さいかを具体的に知る必要があります。文字列を整数に変換し、それがInt32.MinValueより小さいかInt32.MaxValueより大きいかどうかを判断する方法?
try
{
return System.Convert.ToInt32(input);
}
catch (OverflowException)
{
return null;
}
catch (FormatException)
{
return null;
}
それが許容値の範囲内にない場合Convert.ToInt32は、OverflowExceptionがスローされますが、それはより大きく、より少ないの両方に同じ例外がスローされます。例外のテキストを解析することとは別のものを判断する方法はありますか?
本当に良い修正はありませんが、Int64に変換して比較しますか? – Manatherin
intではなくlongに変換しますか? – dtb
@dtb:値が長すぎると同じ問題が発生しました... –