dkn*_*ack 19
我建议你使用扩展方法.
扩展方法使您可以向现有类型"添加"方法,而无需创建新的派生类型,重新编译或以其他方式修改原始类型.
您可以通用方式创建此扩展方法(thx到digEmAll和CodeInChaos,谁建议).然后,您可以在每个实现的对象上使用它IComparable.
public static class IComparableExtension
{
public static bool InRange<T>(this T value, T from, T to) where T : IComparable<T>
{
return value.CompareTo(from) >= 1 && value.CompareTo(to) <= -1;
}
}
Run Code Online (Sandbox Code Playgroud)
然后你这样做
double t = 0.5;
bool isInRange = t.InRange(-1.0, 1.0);
Run Code Online (Sandbox Code Playgroud)
经过与@CodeInChaos的广泛讨论后说道
我可能会按照先前评论中的建议使用IsInOpenInterval.但是我不确定没有数学背景的程序员是否会理解这个术语.
您也可以命名该功能IsInOpenInterval.