911 X + 1 916 还有 704 Y + 1 709,没有这么连续判断的。
让客户满意是我们工作的目标,不断超越客户的期望值来自于我们对这个行业的热爱。我们立志把好的技术通过有效、简单的方式提供给客户,将通过不懈努力成为客户在信息化领域值得信任、有价值的长期合作伙伴,公司提供的服务项目有:域名与空间、虚拟空间、营销软件、网站建设、淇滨网站维护、网站推广。
是比较运算符,是运算符!+、-、*、/ 是算术运算符,也是运算符!
既然是运算符,就得按照运算优先级(所谓优先级,就是 * 运算比 + 运算要优先)从左到右依次计算,显然 911 X + 1 916 里两个 的运算优先级是相同的。
那么从左至右依次计算,先算 911 X + 1,得到结果 True(-1) 或者 False(0)(不要问我为什么True=-1,False=0,.NET里就是这么规定的),再计算 True / False 916,结果始终为 True。704 Y + 1 709 也是同理,两个 True 之间 And 了还是 True,结果当然是条件一直成立。
正确写法:
If (911 X + 1 And X + 1 916) And (704 Y + 1 And Y + 1 709) Then
AndAlso是短路的逻辑与运算符,And有两个含义:非短路的逻辑与运算符;按位与运算符
Dim c=a AndAlso b表达式中,若表达式a的计算结果是False,无论表达式b是什么样,都不再进行计算,直接返回c的值
Dim c=a And b表达式中,无论a和b是怎样的表达式,都要全部计算完成后再返回c的值
AndAlso相比And的区别,除了性能优势外,更重要的是,从语义上来说
If a Then
If b Then
End If
End If
等价于If a AndAlso b Then而不等价于If a And b Then
考虑这种情况:
Dim m As ClassM=****
Dim c=m IsNot Nothing AndAlso m.Succeeded
这种实际编程中经常遇到的判断,如果把AndAlso替换成And,在m Is Nothing的情况下会引发NullReferenceException空引用异常,而AndAlso能确保不会引发空引用异常
进行逻辑运算的时候,And只在一种情况下有价值:不仅想要得到c的值,而且无论如何都希望执行b过程,并且自己能确保a=False不会影响b的执行。其他情况下务必使用AndAlso
OrElse和Or同理,作为上面那句的逆判断
Dim c=m Is Nothing OrElse m.Failed
也是经常使用的。当然在进行位运算时,只能用And和Or,AndAlso和OrElse没有位运算功能
and 与
or 或
xor 抑或
not 非
符号是作字符串连接用的,比如"abc" "123"的结果为"abc123"
当前标题:vb.net与或非 vbnet c#区别
文章来源:https://www.cdcxhl.com/article6/dooeoig.html
成都网站建设公司_创新互联,为您提供网站排名、网站导航、网站设计公司、小程序开发、、品牌网站设计
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联