我需要执行一个包含数学和条件语句以及 switch 语句的表达式。我试过的是这样的:
20 + 10 + (if (20 > 10){ return 0.2; } else { return 0.1; }) //+ switch case
现在编译器会为这个表达式抛出编译错误。为什么,以及如何修复它以使其正常工作?
我需要执行一个包含数学和条件语句以及 switch 语句的表达式。我试过的是这样的:
20 + 10 + (if (20 > 10){ return 0.2; } else { return 0.1; }) //+ switch case
现在编译器会为这个表达式抛出编译错误。为什么,以及如何修复它以使其正常工作?
为什么:if .. else ..
是一个陈述,而不是一个表达式。
方法:使用?
运算符:
20+10+(20>10)?0.2:0.1+(case_condtion_1)?case_value_1:((case_condtion_2)?case_value_2:(...))
如果您喜欢使用if
,可以像这样修改您的表达式:
20 + 10 + ((Func<double>) (() => { if (20 > 10){ return 0.2; } else { return 0.1; }}))();
但是,它真的会令人困惑。?
最好像@Murkaeus 所说的那样使用运算符。