我知道这是一个可能已经回答的愚蠢问题,但我找不到容易搜索的问题。我的问题是我应该使用"否则"我什么时候不需要?使用VB.NET ...
Function IsHappy(hasBeer As Boolean)
If hasBeer = True Then Return "Happy"
msgbox("I'm sad")
Return "Sad"
End Function
或者...
Function IsHappy(hasBeer As Boolean)
If hasBeer = True Then
Return "Happy"
Else
msgbox("I'm sad")
Return "Sad"
End If
End Function
这些看起来和我一样,只是第一个看的代码要少一些,但第二个看起来更清晰,但更详细。是否有理由选择其中一个而不是另一个?
编辑:删除了刚刚返回hasBeer的明显捷径并使其稍微复杂一些
为了澄清,我只是试图弄清楚,如果你没有在IF退出早期时,是否有充分的理由使用else语句。它只是一种没有明确偏好的风格选择吗?
答案 0 :(得分:2)
取决于。
在这里,我使用early exit:
Function IsHappy(hasBeer As Boolean) as Boolean
If hasBeer Then
Return True
End If
' Complicated logic to determine whether another reason
' for being happy can be determined
...
Return False ' No reason found
End Function
在这里,我使用If
和Else
:
Function IsHappy(hasBeer As Boolean) As Boolean
If hasBeer Then
' Do some side effects
...
Return True
Else
' Do other side effects
...
Return False
End If
End Function
在你的例子中,我只是使用
Function IsHappy(hasBeer As Boolean) As Boolean
Return hasBeer
End Function
答案 1 :(得分:0)
我知道你的hasBeer标志只是一个例子 - 逻辑可能要复杂得多。
我更喜欢第一种选择,因为视觉混乱程度较低。我可能会在最后一行之前添加空格 - 这使得很明显,任何获得此功能的路径都会返回false。
答案 2 :(得分:0)
详细程度本身并不是一个问题。性能相同,清晰度几乎总是胜过现实应用中的聪明代码。