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