【问题标题】:A method with tryparse using min and max limits使用最小和最大限制的 tryparse 方法
【发布时间】:2013-07-19 22:22:48
【问题描述】:

我正在尝试制作这样的方法

    public static bool GetInteger(string stringToConvert, out int intOutValue, int minLimit, int maxLimit)

我希望它检查该值是否在我用 in-values 指定的最小和最大范围内。解析只是

            int.TryParse(stringToConvert, out intOutValue)

但是我现在如何检查“intOutValue”的值是否在范围内?它一直告诉我这是一个布尔值...... 任何有关如何做到这一点的帮助将不胜感激! (我对编程很陌生,尤其是 C#)

【问题讨论】:

    标签: c# methods max min tryparse


    【解决方案1】:

    如果您尝试根据对TryParse 的调用结果进行比较,那么这就是您的问题;返回一个布尔值以指示成功与否(因此 Try)。因此,您需要比较 inOutValue,因为这是已填充的内容。

    public static bool GetInteger(string input, out int result, int min, int max) {
      return int.TryParse(input, out result) && (result >= min && result <= max);
    }
    

    这里不需要out 参数,我什至会说方法命名不好,除非你真的希望在事后可以访问该值。

    【讨论】:

    • 啊,这是我的问题!我试图比较错误的东西。谢谢。
    • 另外,是的,我希望该值可以访问,我将在其他程序(Windows 窗体等)中使用它,以便我可以从字符串转换整数和双精度值。编辑:有什么方法可以重载此方法以仅使用最小值而不使用最大值(仅传递最大值)?还是我需要一种全新的方法?
    【解决方案2】:

    您似乎想检查它是否也在给定范围内,以及一个有效的 int。在这种情况下,您可以这样做:

    public static bool GetInteger(string stringToConvert, out int intOutValue, int minLimit, int maxLimit)
    {
        bool parsed = int.TryParse(stringToConvert, out intOutValue);
        return parsed && intOutValue >= minLimit && intOutValue <= maxLimit;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-15
      • 2014-04-26
      • 2019-04-18
      • 2011-01-12
      • 1970-01-01
      • 2014-12-22
      相关资源
      最近更新 更多