C# - 使用三元运算符有什么好处或好处吗?

时间:2012-02-14 17:00:41

标签: c# asp.net

对if语句使用第三运算符有什么好处或好处吗?

例如,以下更有效吗?或者考虑更好的编程实践?

variable1 = string.IsNullOrEmpty(variable2) ? "string value" : "";

与以下格式相比:

        if (string.IsNullOrEmpty(variable2))
        {
            variable1 = "string value"
        } else
        {
            variable1 = "";
        }

6 个答案:

答案 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)

如果你想在块中执行多个语句,你需要重构代码,但它很容易重构。有些人可能认为它会降低代码的可读性。就纯粹的功能而言,没有区别。