我正在构建一个程序,必须检查多个变量中的任何一个是否为负数,但它告诉我运算符||不能应用于'double'和'double'类型的操作数。
if (ASUses || eleven52Uses || UreaUses || PotashUses || FillerUses<0)
{
MessageBox.Show("Error: one or more of the desired outputs is negative");
}
问题只存在于前两个变量中:
(ASUses || eleven52Uses)
答案 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