我正在编写条件运算符来代替if else
。但我的情况我有以下多个陈述
if (condition)
{
statement 1;
statement 2;
}
else
{
statement 3;
statement 4;
}
我怎样才能使用条件运算符? and :
答案 0 :(得分:15)
条件运算符用于评估备用表达式,而不是调用备用语句。
如果你的两组语句在逻辑上具有相同的结果类型,那么可以重构以将它们中的每一个放在一个单独的方法中:
var result = condition ? Method1() : Method2();
但如果他们在逻辑上更多地考虑副作用而不是评估结果,我会改用if
块。
答案 1 :(得分:2)
你不能,因为条件运算符是表达式,而不是语句。你必须使用if-else结构来实现你想要做的事情。
答案 2 :(得分:1)
例如,只有当他们公开一个流畅的API并具有返回值时(即允许您将多个步骤压缩到单个表达式中的东西);例如:
sb = (someCondition) ? sb.Append("foo").Append("bar")
: sb.Apppend("cde").Append("fgh");
否则?没有;你只得到一个表达式来评估每个案例。当然,你可以重构方法;
var x = (someCondition) ? MethodA() : MethodB();
再次假定返回值。
答案 3 :(得分:0)
创建一个函数或委托,接受与要评估的表达式数相对应的多个参数:
int i = 7, j = 8;
Func<int, int, int> dummy = ((a,b) => b);
int k = (i < 5) ? dummy(i++, j--) : dummy(i--, j++);
Console.WriteLine("{0}, {1}, {2}", i, j, k);