首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >AndAlso以避免双重“如果-然后”

AndAlso以避免双重“如果-然后”
EN

Stack Overflow用户
提问于 2015-11-10 15:00:38
回答 1查看 192关注 0票数 0

我想知道是否可以使用"AndAlso“来避免由对象"nothing”引起的错误,而不需要使用双重“if --然后”,例如,我有以下代码:

代码语言:javascript
运行
复制
Public Sub Main() Handles Btn_Main.Click
    Dim Word As String = InputBox("Insert a word", "Word", "Word")
    Dim mObject As Object = mWord(Word)
    If Not mObject Is Nothing Then
        If mObject.length >= 6 Then
            MsgBox("The 6th char of the word is " & mObject(6))
        Else
            MsgBox("the word is shorter than 6 characters")
        End If
    End If
End Sub


Function mWord(ByVal Word As String) As Object
    Dim mReturn As Object = Word.tochararray
    If mReturn.length > 6 Then
        Return mReturn
    Else
        Return Nothing
    End If
End Function

我能不能避免双重“如果-那么”这样:

代码语言:javascript
运行
复制
Public Sub Main() Handles Btn_Main.Click
    Dim Word As String = InputBox("Insert a word", "Word", "Word")
    Dim mObject As Object = mWord(Word)
    If Not mObject Is Nothing AndAlso mObject.length >= 6 Then
        MsgBox("The 6th char of the word is " & mObject(6))
    Else
        MsgBox("the word is shorter than 6 characters")
    End If
End Sub

这是使用AndAlso的好方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-10 15:26:48

是的,这是使用AndAlso的好方法,也是操作员的目的。

And运算符执行布尔比较,但不短路计算。

AndAlso运算符执行布尔比较,并短路计算。

短路比较非常有用,因为它可以避免不必要的操作。一般来说,在执行这样的If条件检查时,您希望使用短路布尔运算符。OrElseAndAlso的逻辑推论

嵌套的If语句,如您的第一个示例所示,会产生重复的代码和更难理解的逻辑结构(阅读:跟随)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33632981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档