我不确定以下陈述是否可以写为一行(即三元形式)。
if (A == B)
FunctionA();
else
FunctionB();
FunctionA和FunctionB都是void类型。
答案 0 :(得分:19)
没有。条件运算符仅对非void 表达式有效。关键是要评估两个表达式中的一个,并将其作为结果。
基本上:写if
语句。这是执行一个动作或其他动作的惯用方式。
你可以编写这样的扩展方法:
// For demonstration purposes only. Please don't use in real life.
public static void Conditional(this bool result,
Action trueAction,
Action falseAction)
{
Action action = result ? trueAction : falseAction;
action();
}
然后:
(A == B).Conditional(FunctionA, FunctionB);
...但我强烈建议你不要。
答案 1 :(得分:11)
如果以下语句可以写为一行
不确定
if (A == B) FunctionA(); else FunctionB();