我有以下内容:
string outOfRange = "2147483648"; // +1 over int.MaxValue
显然,如果您有除数字之外的任何其他内容,这将失败:
var defaultValue = 0;
int.TryParse(outOfRange, out defaultValue);
我的问题是,因为这是一个数字,当你int.TryParse()
时它会失败,你怎么知道它失败是因为字符串超出了容器的范围它存储在?
最佳答案
对于这种情况,我会选择 Try/Catch
解决方案。
string outOfRange = "2147483648";
try
{
int.Parse(outOfRange);
}
catch (OverflowException oex)
{
}
catch (Exception ex)
{ }
我知道这里的大多数人会建议避免使用它,但有时我们不得不使用它(或者我们不必使用它,但它会为我们节省很多时间)。
here's一篇关于 Try/Catch
效率的小文章。
关于c# - 判断 double/float/int/short/byte 的字符串是否超出范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18519833/