两个内联条件检查

时间:2015-03-11 19:14:03

标签: c# asp.net

我正在努力避免额外的代码行。所以我正在运行这个你们看看它是否正确。我写了一个内联条件来检查对象中的2个元素。

如果分配了通知日期(EndsAt)且错误消息为NullorEmpty或未分配通知日期且错误消息不是NullorEmpty,则返回" 09"。

        if ((Notification.EndsAt.HasValue && String.IsNullOrEmpty(Notification.ErrorMessage)) || (!Notification.EndsAt.HasValue && !String.IsNullOrEmpty(Notification.ErrorMessage)))
        {
            return "09";
        }

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

你的问题究竟是什么?

检查2个元素时我的条件是否正确?

如果你问你的条件是否正确并按照你要求他们做的那样,那么看起来没问题。括号和刘海走到了应有的位置。

有什么方法可以减少条件检查吗?

无法回答,因为在以下情况下您没有提及要返回的内容:


EndsAt不是Assigned& ErrorMessage IS NullorEmpty

EndsAt已分配& ErrorMessage不是NullorEmpty


我可以提高效果和可读性吗?

由于此处的条件逻辑取决于EndsAt是否具有值,并且如果ErrorMessage为null或空,您可以将它们存储在变量中,并将这些变量与您提供的布尔逻辑进行比较。这减少了代码的长度(并提高了可读性),如果在程序中多次获取这些布尔值需要一段时间,将它们作为局部变量将提高性能。 (想想如何保存数组中元素的数量并多次使用它(当它保持不变时)比当你知道计数不会改变时多次调用count方法更有效。