我在另一个开发人员接手的程序中遇到以下条件:
if (obj.Performance <= LOW_PERFORMANCE)
{
obj.NeedsChange = true;
}
else
{
obj.NeedsChange = false;
}
我相信这段代码是多余的和丑陋的,因此我根据比较将其更改为我认为是简单的布尔分配:
obj.NeedsChange = obj.Performance <= LOW_PERFORMANCE;
看到此消息后,查看我的代码的人评论说,尽管我的更改在功能上是正确的,但可能会使其他人困惑。他认为使用三元运算符可以使此分配更加清晰,而我不喜欢添加更多的冗余代码:
obj.NeedsChange = (obj.Performance <= LOW_PERFORMANCE) ? true : false;
他的理由是,如果这样做会使另一个开发人员不得不停下来并确切地想出自己所做的事情,那么以最简洁的方式做某事是不值得的。
真正的问题是,这三种为布尔值赋值的方法中哪一种obj.NeedsChange
最清晰,最可维护?