在单个变量上使用多个逻辑运算符而不重复变量名的条件



看下面的if语句:

var veryLongVariableName = 7;
if (veryLongVariableName > 5 && veryLongVariableName < 18 && veryLongVariableName != 13)
{
//do something...
}

是否有一种更简单的方式来写这个,所以变量名不会在if表达式中重复3次?我正在寻找一个解决方案,也将为其他值类型/引用类型工作。

如果你使用c# 9,你可以使用and:

var veryLongVariableName = 7;
if (veryLongVariableName is > 5 and < 18 and not 13)
{
//do something...
}

因为您检查的是常量值,所以您可以创建一个逻辑模式,该模式使用is,然后是andornot

这也使用关系模式(<,>,<=>=操作符);另一个c# 9模式匹配增强。