运营商||不能应用于double和double类型的操作数

时间:2014-05-26 16:42:19

标签: c# double

我正在构建一个程序,必须检查多个变量中的任何一个是否为负数,但它告诉我运算符||不能应用于'double'和'double'类型的操作数。

if (ASUses || eleven52Uses || UreaUses || PotashUses || FillerUses<0)
{
   MessageBox.Show("Error: one or more of the desired outputs is negative");

}

问题只存在于前两个变量中:

(ASUses || eleven52Uses)

2 个答案:

答案 0 :(得分:5)

试试这个:

if (ASUses<0 || eleven52Uses<0 || UreaUses<0 || PotashUses<0 || FillerUses<0)

(假设所有变量都是双数而不是bool当然......)

逻辑或运算符(||)只能应用于布尔值。虽然人类逻辑可以很容易地找出语法背后的含义,但不幸的是,编译器只有在符合语言规范的情况下才能读取它。

另外:我会考虑编写一个检查变量有效性的函数,而不是在if语句中使用这么多变量,因为维护这样的代码会非常困难。

答案 1 :(得分:4)

它不是如何工作的,你需要将每个陈述分开。或使用数组:

if(new []{ ASUses,eleven52Uses,UreaUses,PotashUses,FillerUses }.Any(x => x < 0))

如果您想检查负数,还需要< 0