可能的重复:
使用条件 ?: (三元)运算符
的好处 条件运算符慢吗?
大家好,
关于不同的 if/else 语句,我有一个非常简单的问题。
除了编写更少的代码之外,与完整的 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;
同样,它只在某些情况下有用——但在那些情况下它真的很方便。
除了编写更少的代码之外,与完整的 if/else 语句相比,使用三元运算符还有其他好处吗?
更好的可读性,在某些情况下......我认为就是这样。
使用它时是否会提高性能、减少编译代码或其他任何对我有益的东西?
不,没什么大不了的。我认为无论如何它通常会编译成相同的IL ...
因此,最终,您应该只根据可读性做出选择。如果编写完整的 if/else 更易读,那就去做吧。如果它是一个非常简单且易于阅读的三元表达式,那就去吧。