c# - 判断 double/float/int/short/byte 的字符串是否超出范围

标签 c# wpf int tryparse outofrangeexception

我有以下内容:

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/

相关文章:

C# 7.2 在关键字性能方面

c# - 如何从 System.Windows.Input.KeyEventArgs 获取按下的字符?

c# - 在 WPF 应用程序的默认电子邮件处理程序中打开新电子邮件的链接

java - 如何从两个整数中随机选择一个?

c# - 使用事件等待句柄阻止窗口关闭,然后包装为异步等待。可以接受吗?

c# - 在 Mono 中许可您的代码

c# - 身份验证过滤器 : How to do a HTTP 401 with message

c# - `(arg) => true)` 的 WPF 目的

java - 为什么下面的代码不起作用,除非数组是 Integer[],而不是 int[]

java - 验证一个整数并使其为 5 位数字