对于简单的if,赋值变量是否有更好的语法

时间:2012-01-13 11:56:43

标签: asp.net asp.net-mvc-3 syntax if-statement

我的代码基本上在一种情况下分配变量,否则在另一种情况下分配。有更简洁的方式更有效吗?

是的,不要占用这么多行。或者这是最好的方式?

 if (ViewBag.Date != RoomBooking.StartDateTime.Date || ViewBag.DayPlannerStartTime * 12 > (Int32)RoomBooking.StartDateTime.TimeOfDay.TotalMinutes / 5)
        {
            StartBlock = ViewBag.DayPlannerStartTime * 12;
        }
        else
        {
            StartBlock = ((Int32)RoomBooking.StartDateTime.TimeOfDay.TotalMinutes / 5);
        }

2 个答案:

答案 0 :(得分:1)

也许这个(它可以说是更整洁,但绝对具有相同的效率):

StartBlock = (ViewBag.Date != RoomBooking.StartDateTime.Date || ViewBag.DayPlannerStartTime * 12 > (Int32)RoomBooking.StartDateTime.TimeOfDay.TotalMinutes / 5)
    ? ViewBag.DayPlannerStartTime * 12
    : ((Int32)RoomBooking.StartDateTime.TimeOfDay.TotalMinutes / 5);

编辑:您也可以略微优化条件。我怀疑你的DayPlannerStartTime以秒表示,如果我是对的,你可以用以下方式重写比较(我只是将>运算符的两个操作数除以12,{{1}除以5 * 12成为TotalMinutes):

TotalHours

答案 1 :(得分:1)

是的,您可以使用?: operator创建一个表达式,如果条件为真,将计算第一个表达式,或者第二个表达式:

// condition ? first_expression : second_expression;
var value = (something that is true or false) ? value if true : value if false;