using System; namespace Apewer.Internals { internal class NumberHelper { /// <summary>约束值范围,若源值不在范围中,则修改为接近的值。</summary> 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; } /// <summary>约束值范围,若源值不在范围中,则修改为接近的值。</summary> public static T RestrictValue<T>(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; } } }