是否有一种优雅的方法来确定数字是否在最小值和最大值之间,如果没有设置最小值/最大值?加/减时有用,但不想低于零且高于限值。
有一些明确的解决方案,但它似乎是一个关键的功能,我认为应该有一些比使用两个if或两个三元运算符更干净和优雅。当然,人们总能创造自己的方法,但为什么要重新发明轮子。
这就是我的意思:
int limit(int lowerBound, int upperBound, int number)
{
return (number < lowerBound) ? lowerBound : (number > upperBound) ? upperBound : number;
}
int limit2(int lowerBound, int upperBound, int number)
{
if (number < lowerBound)
{
return lowerBound;
}
else if (number > upperBound)
{
return upperBound;
}
else
{
return number;
}
}
[编辑]
抱歉,没有意识到这个词,所以我没有发现它曾被问过一次。但无论如何,这种单行程很棒,虽然它的目的可能并不是一见钟情,但它完全满足了我的需求。感谢任何发布它的人(但随后删除了他们的答案)。int foo = Math.Max(Math.Min(upperBound, number), lowerBound);