C# 的通用 Clamp 函数






3.17/5 (9投票s)
一个用于将值“夹紧”到给定范围内的函数。
引言
这是我的第一个 C# 通用函数。
在计算机术语中,钳位一个值是指确保它位于某个最大值和最小值之间。如果它大于最大值,则用最大值替换它,依此类推。
我第一次是在计算机图形学的上下文中学习到的,例如颜色 - 它被用于确保你的光线追踪像素不会“比黑色更黑”。
所以:
public static T Clamp<T>(T value, T max, T min)
where T : System.IComparable<T> {
T result = value;
if (value.CompareTo(max) > 0)
result = max;
if (value.CompareTo(min) < 0)
result = min;
return result;
}
用法
int i = Clamp(12, 10, 0); -> i == 10
double d = Clamp(4.5, 10.0, 0.0); -> d == 4.5