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

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

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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
代码运行次数:0
运行
AI代码解释
复制
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 07:26:48

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

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

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

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

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

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

https://stackoverflow.com/questions/33632981

复制
相关文章
干货 | 如果信息泄露不可避免,我们该如何保护用户密码?
作者简介 张辉,就职于携程技术中心信息安全部,负责安全产品的设计与研发。 作为互联网公司的信息安全从业人员经常要处理撞库扫号事件,产生撞库扫号的根本原因是一些企业发生了信息泄露事件,且这些泄露数据未加密或者加密方式比较弱,导致黑客可以还原出原始的用户密码。目前已经曝光的信息泄露事件至少上百起,其中包括多家一线互联网公司,泄露总数据超过10亿条。 要完全防止信息泄露是非常困难的事情,除了防止黑客外,还要防止内部人员泄密。但如果采用合适的算法去加密用户密码,即使信息泄露出去,黑客也无法还原出原始的密码(或者还原
携程技术
2018/03/16
1K0
干货 | 如果信息泄露不可避免,我们该如何保护用户密码?
ps双重曝光
3.将我们事先准备不好的大雁图拖入过来, 按ctrl t 选中图层按住shift ctrl 键
菜菜有点菜
2022/03/01
6960
ps双重曝光
双重回文
Original 思想: 模拟,枚举。 枚举进制从 i = 2 ~ 10,判断 i 进制下是否回文。 将数转换进制后,化为 string 判断即可。 代码: #include <bits/stdc++.h> using namespace std; bool check(int x){ int cnt = 0; for(int i = 2; i <= 10; i ++){ int xx = x; string a = ""; //保存当前进制的数
浪漫主义狗
2023/02/21
3230
双重检查锁定
双重检查锁定 - Double checked locking,是一种单例的方式。这种写法的关键在于用 volatile描述实例对象,同时在 synchronized块外面和里面判断实例对象是否为空。
PhoenixZheng
2018/08/07
2.3K0
ps双重曝光
通过PS的蒙版和快速选择工具,快速制作一个双重曝光的照片效果,给有意义的人和景留下特殊的照片。
菜菜有点菜
2022/03/15
1K0
ps双重曝光
双重指针赋值
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/157439.html原文链接:https://javaforall.cn
全栈程序员站长
2022/09/14
4890
你迁移到了云,然后网络瘫痪了...然后呢?
或早或晚,大规模连接故障总有一天会降临到我们身上。在这种情况下,您所在的企业是否有能力继续保持运作,抑或是只能在互联网服务中断时让每位员工提前下班? 也许有一天,大家会赫然发现整个世界都陷入了一片沉
静一
2018/03/23
1.2K0
双重差分模型
今天给大家介绍一种比较常用分析方法。叫做双重差分法。啥叫个双重差分法呢?我们先不管这个什么法,我们直接来看例子。
张俊红
2019/09/02
2.2K0
C++核心准则CP.111:如果真的需要好双重检查锁,使用惯用模式
Double-checked locking is easy to mess up. If you really need to write your own double-checked locking, in spite of the rules CP.110: Do not write your own double-checked locking for initialization and CP.100: Don't use lock-free programming unless you absolutely have to, then do it in a conventional pattern.
面向对象思考
2020/07/28
5340
架构畅想:如果以你所会去进行架构,会到哪一步?
平台之大势何人能挡? 带着你的Net飞奔吧!http://www.cnblogs.com/dunitian/p/4822808.html 这边只是简单框一下,也希望能有大牛分享你们的架构让我们这些菜鸟参考研究一番 ^_^ 如有纰漏欢迎指出~ DNS负载均衡==>反向代理服务器==>负载均衡器==>Web服务器 {   (CDN)   (企业总线==>应用服务器(https 登录,注册,订单,搜索))   (文件服务器==>外部OS + 内部 TFS +NoSql服务器)   (NoSql服务器==>缓存服务
逸鹏
2018/04/10
5400
架构畅想:如果以你所会去进行架构,会到哪一步?
彻底删除mysql然后重装
到控制面板裡面先把mysql刪除. 到c盤C:\Program Files目錄下把mysql目錄刪除.(按你的安裝路徑去找) 如果在其他盤還有設置目錄也要刪除. 到regedit把註冊表 HKEY_LOCAL_MACHINE/SYSTEM/ControlSet001/Services/Eventlog/Application/MySQL HKEY_LOCAL_MACHINE/SYSTEM/ControlSet002/Services/Eventlog/Application/MySQL
闵开慧
2018/03/30
2K0
关于自定义聊天功能(理论篇)然后如果有人需要代码和其他疑惑请留言。
先上效果图 实现的功能, 发送文字,发送系统的emoji,发送图片,发送语音,消息的重发。 控件封装思路 整体采用MVVM框架封装。 UI相关:UI布局上现阶段需求,只使用一个Cell,然后给不同类型
大壮
2018/06/19
4590
头条面试官问我看过哪些源码,然后就没有然后了
最近,我的一位朋友在找工作,已经拿到了美团、快手等公司的Offer,准备选择其中一家入职了。
芋道源码
2019/07/05
1.1K0
头条面试官问我看过哪些源码,然后就没有然后了
这个问题你应该很熟悉,然后懵逼,然后放弃
今天早晨决定写这篇博文,但是晚上回家的时候,突然一道闪电从脑海劈过,于是临时决定将这个熟悉然后到懵逼最后到放弃的问题分为两部分。第一部分为抛出问题,诚邀各路英雄豪杰解答;第二部分为解答,就是一周之后会给出我的答案。
IMWeb前端团队
2019/12/04
2810
这个问题你应该很熟悉,然后懵逼,然后放弃
C++ typename的双重含义
这两种写法并没有任何区别,都是标记T是模板类型参数,可以是任何类型,包括用户自定义类型或是语言的基本类型。虽然而这在用于模板类型参数申明时的作用完全相同,但是仍建议使用typename,因为typename的字面意义即表示类型名称,更加符合其语义。而class则多用于类的申明,而非模板类型参数。当然,如果原有项目中均使用class,那么请与原有项目风格保持一致。
恋喵大鲤鱼
2018/09/27
1.3K0
印度芯片转舵的双重命题
随着人工智能、虚拟现实等技术逐步走向应用阶段,芯片产业的重要性愈发凸显。然而,始于2020年末的全球缺芯困局仍在持续,尽管多家调研机构曾预测今年下半年有望缓解,但结构性缺芯仍将存在。
数据猿
2022/04/06
4580
印度芯片转舵的双重命题
使用ASP.NET Identity以手机短信实现双重验证创建一个ASP.NET 5项目运行应用程序使用SMS短信进行双重验证开启双重验证使用双重验证登陆应用程序禁用账户来防止暴力破解
这篇文章将展示怎么使用SMS短信启动双重验证 创建一个ASP.NET 5项目 一开始,使用Visual studio 2015创建一个新的ASP.NET Web应用程序: 在下一步中选择ASP.NET
小白哥哥
2018/03/07
2.6K0
使用ASP.NET Identity以手机短信实现双重验证创建一个ASP.NET 5项目运行应用程序使用SMS短信进行双重验证开启双重验证使用双重验证登陆应用程序禁用账户来防止暴力破解
因子评估——双重排序
对于因子的评估,之前的文章中总结了单因子测试的回归法、分层法以及多因子评估的Fama-MacBeth回归(链接见底部)。本文给出因子分析中的双重排序法(double sorting or bivariate sorting) 的原理及代码实现。
量化小白
2020/02/24
6.5K3
因子评估——双重排序
python语法 3.1 双重for循环
"D:\Program Files\python-3.6.4\python.exe" "C:/Users/Administrator/Desktop/python-prj/for double.py" --------- 0 0 1 2 3 4 5 6 --------- 1 0 1 2 3 4 5 6 --------- 2 0 1 2 3 4 5 6 --------- 3 0 1 2 3 4 5 6 --------- 4 0 1 2 3 4 5 6 Process finished with exit code 0
py3study
2020/01/12
8690
点击加载更多

相似问题

避免双重预订/双重开支

21

避免双重循环

11

避免双重递归

12

如何避免“双重”事件双重绑定?

013

避免双重编码json

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文