我有if
如下声明
if (1 <= value <= 20)
{
}
value
是一个double
。
但是我收到一条错误消息,提示“运算符'<='不能应用于'bool'和'double'类型的操作数”
有没有办法解决这个错误?
我有if
如下声明
if (1 <= value <= 20)
{
}
value
是一个double
。
但是我收到一条错误消息,提示“运算符'<='不能应用于'bool'和'double'类型的操作数”
有没有办法解决这个错误?
C# 不允许您这样做。
这样做:
if (1 <= value && value <= 20)
问题不是double
,问题是你的语法不正确。
你:
if (1 <= value <= 20)
{
}
这被解释为
(1 <= value) <= 20
因此将与前 1 进行比较,value
并确定前者是否“小于或等于”后者。这给出了一个布尔值。然后将该布尔值 True 或 False 与<=
to 进行比较20
。20
但是你不能在 C# 中询问 True/False 是否小于或等于。
问题:如果不合并它们,您将无法检查两个表达式。
解决方案:我想你想检查是否value
在中间1 and 20
您可以使用逻辑与&&
运算符来检查这个
尝试这个:
if (value >= 1 && value <= 20)
{
}
1 <= value evaluates out to be bool
(如果值小于 1,则为 false,否则为 true)。
因此,它的评估结果是(true <= 20) or (false <=20)
并且错误状态清楚地表明您不能使用运算符<=
来比较 bool 和 double。
您需要和 (&&) 运算符进行比较:
if (1 <= value && value <= 20)
{
}