You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

41 lines
1.1 KiB

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