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;
}
}
}