假设我有两种方法bool Foo()
和bool Bar()
. 以下哪个更具可读性?
if(Foo())
{
SomeProperty = Bar();
}
else
{
SomeProperty = false;
}
或者
SomeProperty = Foo() && Bar();
一方面,我认为短路&&
是一个有用的功能,第二个代码示例要短得多。另一方面,我不确定人们通常是否习惯于在&&
条件语句之外看到,所以我想知道这是否会引入一些认知失调,使第一个样本成为更好的选择。
你怎么看?是否有其他因素影响该决定?就像,如果&&
表达式比屏幕上可以容纳的一行长,我应该更喜欢前者吗?
回答后澄清:
我应该在答案提出的最初问题中包含一些内容。
Bar()
执行起来可能比 更昂贵Foo()
,但是这两种方法都不应该有副作用。- 这两个方法的命名都更恰当,不像这个例子。
Foo()
归结为类似的东西CurrentUserAllowedToDoX()
,更像Bar()
是,XCanBeDone()