我正在尝试制作一个像这样的方法
public static bool GetInteger(string stringToConvert, out int intOutValue, int minLimit, int maxLimit)
我希望它检查该值是否在我使用in-values指定的最小和最大范围内。解析只是
int.TryParse(stringToConvert, out intOutValue)
但是我现在如何检查“intOutValue”的值是否在范围内?它一直告诉我这是一个博尔价值...... 任何有关如何做到这一点的帮助都会受到极大的关注! (我对编程很新,特别是在c#中)
答案 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;
}