C# “哪个更好?”;“如果声明”;在C中使用#
这两种方法都有效,但以下哪种方法更好:C# “哪个更好?”;“如果声明”;在C中使用#,c#,readability,C#,Readability,这两种方法都有效,但以下哪种方法更好: PlaceHolder PH = ctl.PlaceHoldNu == 1 ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1") : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu); 或 最好的是你喜欢用的那种 它们将编译成相同的东西,因此这取决于上下文。哪一种方法可以更清楚地说明您想做的事情?另一种解决方案是: PlaceHold
PlaceHolder PH = ctl.PlaceHoldNu == 1 ? (PlaceHolder)Page.Master.FindControl("PlaceHolder1") : (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);
或
最好的是你喜欢用的那种
它们将编译成相同的东西,因此这取决于上下文。哪一种方法可以更清楚地说明您想做的事情?另一种解决方案是:
PlaceHolder PH = ctl.PlaceHoldNu == 1
? (PlaceHolder)Page.Master.FindControl("PlaceHolder1")
: (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);
此解决方案使用最少的行数,但保持可读性。这是一个品味问题。但是,如果它们太长,我更喜欢第二个。但在此之前,我认为这看起来不错:
PlaceHolder PH =
ctl.PlaceHoldNu == 1
? (PlaceHolder)Page.Master.FindControl("PlaceHolder1")
: (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);
对于这个例子,我喜欢第一个,因为我觉得它更具可读性和简洁性 比这复杂一点,您的第二种方法将是首选方法
但这和正确的一样,只是你自己的口味。我通常只在作业上使用条件运算符(就像你做的那样),但只有在作业简单易读的情况下才使用 你们作业的长度会让我倾向于第二个,因为它的可读性
基本上,如果你想象自己以前从未看过代码,那么最容易解析的是哪一个。这纯粹是一个品味问题,因为编译器(启用了优化)很可能会为两者生成相同的IL代码。第一个更简洁,一个(大多数情况下)努力编写不必要冗长的代码。有鉴于此,第一个(在我看来)是最好的。我也想知道。虽然它不是“另一种解决方案”,但这种格式是由Resharper提供的,所以它一定有一定的流行性。
PlaceHolder PH =
ctl.PlaceHoldNu == 1
? (PlaceHolder)Page.Master.FindControl("PlaceHolder1")
: (PlaceHolder)FindControl("PlaceHolder" + ctl.PlaceHoldNu);