我们在做VB.NET短路判断的时候,出现了一些错误。在这里我们就来进行一个VB.NET短路判断的错误解决方法,希望对大家有所帮助。在用VB6制作程序中书写IF文的时候,一般都要把返回布尔函数的判断分成几块来写。因为VB6不支持短路的判断结果。#t#
可是到了.NET的时代,C#与VB.NET都是基于.NET Framework的,于是就想当然的以为VB.NET会很聪明的改变了AND的式样与C#中的&&等同了(其他的逻辑也一样)。
今天刚好有机会评价一位同仁的程序,我的TRACE总是在不该出现的时候出现,经过测试得到了VB.NET短路判断的AND与VB6的AND相同的结论。
VB6的测试程序: Option Explicit
执行结果:
- PA
- PB
- FALSE
C#的测试程序:
- using System;
- namespace DefaultNamespace
- {
- class MainClass
- {
- public static void Main(string[] args)
- {
- if ( PA() && PB() )
- {
- Console.WriteLine("TRUE");
- }
- else
- {
- Console.WriteLine("FALSE");
- }
- }
- public static bool PA()
- {
- Console.WriteLine("PA");
- return false;
- }
- public static bool PB()
- {
- Console.WriteLine("PB");
- return true;
- }
- }
- }
执行结果:
- PA
- FALSE
VB.NET短路判断的执行结果:
- Imports System
- Module MainModule Main
- Sub Main()Sub Main()
- If PA And PB Then
- Console.WriteLine("TRUE")
- Else
- Console.WriteLine("FALSE")
- End If
- End Sub
- Function PA()Function PA()
As Boolean- Console.WriteLine("PA")
- PA = True
- End Function
- Function PB()Function PB()
As Boolean- Console.WriteLine("PB")
- PB = True
- End Function
- End Module
执行结果:
- PA
- PB
- FALSE
这样很明显就可以得到结论了。
于是就只好马上看看VB.NET的AND运算的帮助,证实了我的想法,并且帮助文件上还给了这样一个词的参照,AndAlso。
原来如此......
在VB.NET短路判断中与C#的&&等价的是AndAlso!
以前虽然有机会用一些C# To VB.NET的工具,可是就是没有注意到这点。实在是够失败。
另: 还有一个新的关键字,OrElse。
文章题目:VB.NET短路判断问题解析
当前网址:http://www.shufengxianlan.com/qtweb/news41/411591.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联