可能重复:
Benefits of using the conditional ?: (ternary) operator
Is the conditional operator slow?
大家好,
关于if / else语句的不同,我有一个非常简单的问题。
除了编写更少的代码之外,使用条件运算符而不是完整的if / else语句还有其他好处吗?
是否有性能提升,编译代码减少,或者在使用时有什么好处?
感谢您的帮助
马尔科
答案 0 :(得分:5)
不要专注于编写更少的代码......专注于您最终可以使用可读的代码。
有时,if
语句更具可读性。有时条件运算符更具可读性。在计算一个逻辑值的不同方式(例如基于客户年龄的折扣)方面,我喜欢条件运算符。我不喜欢以复杂的方式使用它 - 使用完整的if / else没有任何问题。
值得记住null-coalescing运算符...所以代替:
string shipTo = customer.ShippingAddress != null
? customer.ShippingAddress : customer.BillingAddress;
你可以使用
string shipTo = customer.ShippingAddress ?? customer.BillingAddress;
同样,它仅在某些情况下有用 - 但在这些情况下它非常方便。
答案 1 :(得分:1)
除了编写更少的代码之外,使用Ternary运算符而不是完整的if / else语句还有其他好处吗?
更好的可读性,在某些情况下......我认为这就是全部。
在使用它时,是否有性能提升,编译代码减少或其他任何有益于我的事情?
不,没什么大不了的。我认为它通常会编译成相同的IL ...
所以最终,你应该只根据可读性做出选择。如果编写完整的if / else更具可读性,那就去做吧。如果它是一个非常简单的三元表达式,易于阅读,那就去吧。