using System; namespace Apewer.Internals { internal class NumberHelper { /// 约束值范围,若源值不在范围中,则修改为接近的值。 public static int RestrictValue(int argOrigin, int argMin, int argMax) { if (argMin > argMax) return argOrigin; if (argOrigin < argMin) return argMin; if (argOrigin > argMax) return argMax; return argOrigin; } /// 约束值范围,若源值不在范围中,则修改为接近的值。 public static T RestrictValue(T argOrigin, T argMin, T argMax) where T : IComparable { var origin = argOrigin; var min = argMin; var max = argMax; try { if (min.CompareTo(max) > 0) return argOrigin; if (origin.CompareTo(min) < 0) return min; if (origin.CompareTo(max) > 0) return max; return origin; } catch { } return origin; } } }