使用最小和最大限制的tryparse方法

时间:2013-07-20 20:15:47

标签: c# methods max min tryparse

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

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

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

            int.TryParse(stringToConvert, out intOutValue)

但是我现在如何检查“intOutValue”的值是否在范围内?它一直告诉我这是一个博尔价值...... 任何有关如何做到这一点的帮助都会受到极大的关注! (我对编程很新,特别是在c#中)

2 个答案:

答案 0 :(得分:1)

如果您尝试根据对TryParse的调用结果进行比较,那么就存在问题;返回一个布尔值来表示成功与否(因此尝试)。因此,您需要将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参数,我甚至会说方法命名很糟糕,除非您确实希望在事后可以访问该值。

答案 1 :(得分:0)

看起来你想检查它是否也在给定范围内,以及有效的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;
}