0

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

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

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

            int.TryParse(stringToConvert, out intOutValue)

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

4

2 回答 2

2

如果您尝试根据调用结果进行比较,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参数,我什至会说方法命名不好,除非你真的希望在事后可以访问该值。

于 2013-07-20T20:19:05.307 回答
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;
}
于 2013-07-20T20:18:46.750 回答