作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
C# 是否具有为表达式返回 bool 值的函数:if(value.inRange(-1.0,1.0)){}
?
最佳答案
我建议你使用扩展方法。
Extension methods enable you to "add" methods to existing types without creating a new derived type, recompiling, or otherwise modifying the original type.
您可以以通用方式创建此扩展方法(感谢 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;
}
}
然后你这样做
double t = 0.5;
bool isInRange = t.InRange(-1.0, 1.0);
经过与@CodeInChaos 的广泛讨论,他说
I'd probably go with IsInOpenInterval as suggested in an earlier comment. But I'm not sure if programmers without a maths background will understand that terminology.
您也可以将函数命名为 IsInOpenInterval
。
关于c# - If value in range(x,y) 函数 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8776624/
我是一名优秀的程序员,十分优秀!