完整的if / else语句与条件运算符

可能重复:
使用条件?:(三元)运算符的好处
条件运算符是否缓慢?

大家好,

关于if / else语句的不同,我有一个非常简单的问题。

除了编写更少的代码之外,使用条件运算符而不是完整的if / else语句还有其他好处吗?

是否有性能提升,编译代码减少,或者在使用时有什么好处?

感谢您的帮助

马尔科

不要专注于编写更少的代码……专注于最终使代码更具可读性的代码。

有时if语句会更具可读性。 有时条件运算符会更具可读性。 在计算一个逻辑值的不同方式(例如基于客户年龄的折扣)方面,我喜欢条件运算符。 我不喜欢以复杂的方式使用它 – 使用完整的if / else并没有任何问题。

值得记住null-coalescing运算符…所以代替:

 string shipTo = customer.ShippingAddress != null ? customer.ShippingAddress : customer.BillingAddress; 

您可以使用

 string shipTo = customer.ShippingAddress ?? customer.BillingAddress; 

同样,它仅在某些情况下有用 – 但在这些情况下它非常方便。

除了编写更少的代码之外,使用Ternary运算符而不是完整的if / else语句还有其他好处吗?

更好的可读性,在某些情况下…我认为这就是全部。

在使用它时,是否有性能提升,编译代码减少或其他任何有益于我的东西?

不,没什么大不了的。 我认为它通常会编译成相同的IL …

所以最终,你应该只根据可读性做出选择。 如果写一个完整的if / else更具可读性,那就去做吧。 如果它是一个非常简单的三元表达式,易于阅读,那就去吧。