哪个是在C#中使用的更好的“if语句”

时间:2012-01-17 09:42:01

标签: c# readability

这两种方法都有效,但这是使用以下方法的更好方法:

PlaceHolder PH = ctl.PlaceHoldNu == 1 ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1") : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

或者

           PlaceHolder PH;
                    if (ctl.PlaceHoldNu == 1)
                        PH = (PlaceHolder)Page.Master.FindControl("PlaceHolder1");
                    else
                        PH = (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

5 个答案:

答案 0 :(得分:6)

另一种解决方案是:

PlaceHolder PH = ctl.PlaceHoldNu == 1
    ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1") 
    : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

此解决方案使用最少的行但保持可读性。

答案 1 :(得分:4)

这是一个品味问题。但是,如果它们太长,我宁愿第二个。但在此之前,我觉得这很好看:

PlaceHolder PH =
    ctl.PlaceHoldNu == 1
    ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1")
    : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);

答案 2 :(得分:0)

最好的是你喜欢使用的那个。

他们会编译成同样的东西,所以它取决于上下文。哪一个使你想要做的事情的目的更明确?

答案 3 :(得分:0)

对于这种情况,我喜欢第一个,因为我觉得它更具可读性和简洁性。

比这更复杂,你的第二种方法将是首选方法。

但这与正确的

一样,都是你自己的品味

答案 4 :(得分:0)

我通常只在赋值时使用条件运算符(就像你已经完成的那样),但只有当它们简单易读时才会使用。

为了便于阅读,你的作业长度会让我偏爱第二名。

如果您认为以前从未查看过代码,那么基本上最容易解析的是。