65.9K
CodeProject 正在变化。 阅读更多。
Home

C# 的通用 Clamp 函数

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.17/5 (9投票s)

2008 年 1 月 31 日

CPOL
viewsIcon

74942

一个用于将值“夹紧”到给定范围内的函数。

引言

这是我的第一个 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 
© . All rights reserved.