Vb.net 如果我没有';你不需要吗?
我知道这是一个可能已经回答过的愚蠢问题,但我找不到一个简单的搜索方法。我的问题是,我应该在不需要的时候使用“else”吗?使用VB.NETVb.net 如果我没有';你不需要吗?,vb.net,if-statement,Vb.net,If Statement,我知道这是一个可能已经回答过的愚蠢问题,但我找不到一个简单的搜索方法。我的问题是,我应该在不需要的时候使用“else”吗?使用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"
msgbox("I'm sad")
Return "Sad"
End Function
或者
对我来说,它们看起来是一样的,只是第一个代码看起来少了一点,但是第二个代码更清晰,尽管更详细。有没有理由选择其中一个而不是另一个
编辑:删除了只返回hasBeer的明显捷径,使其稍微复杂一些
为了澄清这一点,我只是想弄清楚,如果你不这么做,那么当if将提前退出时,是否有很好的理由使用else语句。这只是一种没有明确偏好的风格选择吗?这取决于你的喜好
在这里,我将使用:
在这里,我将使用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
视情况而定
在这里,我将使用:
在这里,我将使用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
我知道你的hasBeer标志只是一个例子——逻辑可能要复杂得多
我更喜欢第一种选择,因为视觉上的混乱更少。我可能会在最后一行之前添加空格-这非常清楚,任何达到这一步的路径都返回false。我知道您的hasBeer标志只是一个示例-逻辑可能要复杂得多
我更喜欢第一种选择,因为视觉上的混乱更少。我可能会在最后一行之前加上空格——这非常清楚地表明,任何走到这一步的路径都返回false。冗长本身并不是问题。在性能相同的情况下,在实际应用程序中,清晰性几乎总是胜过聪明的代码。冗长本身并不是问题。在性能相同的情况下,在现实应用程序中,清晰性几乎总是胜过聪明的代码。为什么?返回hasBeer并继续。您应该定义所有可能的代码路径。但是在这里,你可以简单地返回hasBeer,当hasBeer不是真的或假的时候呢?添加另一个else分支以处理此情况。嗯,就像在以返回结尾的分支后添加一个
else
一样有意义。每个定义的布尔值是真是假,除非你严重干扰了逻辑。@Steve嗯,就像在以返回结尾的分支后添加一个else
一样有意义。为什么?返回hasBeer并继续。您应该定义所有可能的代码路径。但是在这里,你可以简单地返回hasBeer,当hasBeer不是真的或假的时候呢?添加另一个else分支以处理此情况。好的,就像在以返回结尾的分支后添加一个else
一样有意义。每个定义的布尔值是真是假,除非你严重干扰了逻辑。@Steve好的,就像在以返回结尾的分支后添加一个else
一样有意义。