多个比较运算符
问题描述:
C#中用于检查数字是否在数字范围内的标准方式是什么?多个比较运算符
通常情况下,我会做这样的一些变化与诠释i
:
return (i >= start && i <= end);
有没有语法是这样的:
// does not work
return (start <= i <= end);
答
最贴近你所期望的是
return start <= i && i <= end;
答
C#中没有数学符号。运算符是返回结果的函数。通常,操作符只能是一元或二元的(即不能传递3个参数)。
一个窍门,你所能做的就是引入一个扩展方法:
public static class IntExtensions
{
public static bool WithinRange(this int value, int low, int high)
=> value >= low && value <= high;
}
所以用法是:
return i.WithinRange(start, end);
这是更冗长,但在同一时间比较模糊;它是否意味着包含下限?这是否意味着包含更高的边界?
建议是坚持任何软件开发人员都知道的语法。
+0
谢谢你的回答 - 虽然你的语法在你的例子中是关闭的。 –
您的第一个片段是标准方式。 – itsme86
不,没有像你提出的语法。 – Amy
我认为Ruby允许第二种方式,但第一种方式是c,C++,Java和c#中的习惯用法。 – Bathsheba