2つのメソッドbool Foo()とがありbool Bar()ます。次のうちどれがより読みやすいですか?
if(Foo())
{
SomeProperty = Bar();
}
else
{
SomeProperty = false;
}
また
SomeProperty = Foo() && Bar();
一方では、短絡&&は便利な機能であり、2番目のコードサンプルははるかに短いと思います。一方で、一般的に&&条件文の外を見ることに慣れているかどうかわからないので、それが最初のサンプルをより良い選択肢にする認知的不協和をもたらすのではないかと思います。
どう思いますか?決定に影響を与える他の要因はありますか?たとえば、&&式が画面に収まる1行より長い場合、前者を優先する必要がありますか?
回答後の説明:
答えが持ち出した最初の質問に含めるべきだったいくつかのこと。
Bar()よりも実行に費用がかかる可能性がありますFoo()が、どちらの方法にも副作用はありません。- この例のように、メソッドにはどちらもより適切な名前が付けられています。
Foo()要約すると、次のようなものにCurrentUserAllowedToDoX()なりBar()ます。XCanBeDone()