C#:在条件语句中对一个变量进行两次比较的更好语法
C#: Better Syntax for Two Comparisons Of One Variable in a Conditional Statement
是否有在条件语句中处理两个比较的速记方法?
例如:
if(ReturnedCount > 0 && ReturnedCount < 50)
{
...
}
我相当确定变量必须始终位于运算符的左侧,因为当我尝试以下操作时它不起作用:
if(0 < ReturnedCount < 50)
{
...
}
我在 google 上搜索了 SQL 中 between 关键字的 c# 等价物,但没有得到好的结果。
有没有更好的方法来处理同一个变量的这种双重比较?
简短回答,C# 没有任何语法糖来提供帮助,每个条件测试都只是添加到语句中。
在某些时候,当它开始变得难以阅读时,您可以将其分解为 returns true/false.
的方法调用
即
if (Pred.Equals( a, b, c, d ))
{ ... }
其中,Pred 是一个(不存在的)静态 class,包含用作逻辑谓词的辅助方法。
或者...
第二种方法是链接方法调用来表示连续的条件测试。
即
if (a.GreaterThan(b).LessThan(c).IsTrue())
{...}
其中,GreaterThan 和 LessThan 是 return 'this' 值或 'null' 的扩展方法,如果 'this' 是 return,则 IsTrue return 为真非空。
这是我自己遇到的仅有的两种技巧,祝你好运!
是否有在条件语句中处理两个比较的速记方法?
例如:
if(ReturnedCount > 0 && ReturnedCount < 50)
{
...
}
我相当确定变量必须始终位于运算符的左侧,因为当我尝试以下操作时它不起作用:
if(0 < ReturnedCount < 50)
{
...
}
我在 google 上搜索了 SQL 中 between 关键字的 c# 等价物,但没有得到好的结果。
有没有更好的方法来处理同一个变量的这种双重比较?
简短回答,C# 没有任何语法糖来提供帮助,每个条件测试都只是添加到语句中。
在某些时候,当它开始变得难以阅读时,您可以将其分解为 returns true/false.
的方法调用即
if (Pred.Equals( a, b, c, d ))
{ ... }
其中,Pred 是一个(不存在的)静态 class,包含用作逻辑谓词的辅助方法。
或者...
第二种方法是链接方法调用来表示连续的条件测试。
即
if (a.GreaterThan(b).LessThan(c).IsTrue())
{...}
其中,GreaterThan 和 LessThan 是 return 'this' 值或 'null' 的扩展方法,如果 'this' 是 return,则 IsTrue return 为真非空。
这是我自己遇到的仅有的两种技巧,祝你好运!