对if语句使用第三运算符有什么好处或好处吗?
例如,以下更有效吗?或者考虑更好的编程实践?
variable1 = string.IsNullOrEmpty(variable2) ? "string value" : "";
与以下格式相比:
if (string.IsNullOrEmpty(variable2))
{
variable1 = "string value"
} else
{
variable1 = "";
}
答案 0 :(得分:8)
对于这种情况,条件三元运算符更好。对于有经验的程序员来说,代码更具可读性和可维护性。性能,期间没有显着差异。
答案 1 :(得分:3)
三元运算符更简洁:更少的输入和更快的阅读。编译的IL代码或JITted本机代码可能是相同的。如果没有,任何性能差异几乎肯定是几乎无法估量的。因此,源代码质量是做出决定时唯一真正的考虑因素。
“第三”意味着“重要性第三”; “三元”的意思是“有三个部分。”
我个人更喜欢“条件运算符”这个术语,因为将来有人会发明另一个三元运算符。想象一下,如果我们不得不将+
称为“第一个二元运算符”而将-
称为“第二个二元运算符”!
答案 2 :(得分:2)
数据绑定表达式
是必需的<asp:Label runat="server"
Text='<%# (bool)Eval("Active") ? "Active" : "Disabled"' />
答案 3 :(得分:2)
除了偏好之外没有区别。至于实际上更具可读性,这是一个宗教问题,因为一组程序员会说'是',而另一组'不'。扩展(if / then / else)表单的一个优点是可以更容易地向braches添加其他语句。此外,如果您需要嵌套其他条件逻辑,if / then / else将是首选方法。
答案 4 :(得分:1)
没有性能提升,但通常认为它更好。它使用less来描述与其他示例相同的操作集。
答案 5 :(得分:1)
如果你想在块中执行多个语句,你需要重构代码,但它很容易重构。有些人可能认为它会降低代码的可读性。就纯粹的功能而言,没有区别。