日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
VB.NET短路判斷問題解析

我們在做VB.NET短路判斷的時(shí)候,出現(xiàn)了一些錯(cuò)誤。在這里我們就來進(jìn)行一個(gè)VB.NET短路判斷的錯(cuò)誤解決方法,希望對大家有所幫助。在用VB6制作程序中書寫IF文的時(shí)候,一般都要把返回布爾函數(shù)的判斷分成幾塊來寫。因?yàn)閂B6不支持短路的判斷結(jié)果。#t#

可是到了.NET的時(shí)代,C#與VB.NET都是基于.NET Framework的,于是就想當(dāng)然的以為VB.NET會很聰明的改變了AND的式樣與C#中的&&等同了(其他的邏輯也一樣)。

今天剛好有機(jī)會評價(jià)一位同仁的程序,我的TRACE總是在不該出現(xiàn)的時(shí)候出現(xiàn),經(jīng)過測試得到了VB.NET短路判斷的AND與VB6的AND相同的結(jié)論。

VB6的測試程序: Option Explicit

  1. Private Sub Command1_Click()  
  2. If PA And PB Then  
  3. Debug.Print "TRUE"  
  4. Else  
  5. Debug.Print "FALSE"  
  6. End If  
  7. End Sub  
  8. Private Function PA() As Boolean  
  9. Debug.Print "PA"  
  10. PA = False 
  11. End Function  
  12. Private Function PB() As Boolean  
  13. Debug.Print "PB"  
  14. PB = True 
  15. End Function 

 

執(zhí)行結(jié)果:

 
 
 
  1. PA  
  2. PB  
  3. FALSE 

C#的測試程序:

 
 
 
  1. using System;  
  2. namespace DefaultNamespace  
  3. {  
  4. class MainClass  
  5. {  
  6. public static void Main(string[] args)  
  7. {  
  8. if ( PA() && PB() )   
  9. {  
  10. Console.WriteLine("TRUE");  
  11. }  
  12. else  
  13. {  
  14. Console.WriteLine("FALSE");  
  15. }  
  16. }  
  17. public static bool PA()  
  18. {  
  19. Console.WriteLine("PA");  
  20. return false;  
  21. }  
  22. public static bool PB()  
  23. {  
  24. Console.WriteLine("PB");  
  25. return true;  
  26. }  
  27. }  

執(zhí)行結(jié)果:

 
 
 
  1. PA  
  2. FALSE 

VB.NET短路判斷的執(zhí)行結(jié)果:

 
 
 
  1. Imports System  
  2. Module MainModule Main  
  3. Sub Main()Sub Main()  
  4. If PA And PB Then  
  5. Console.WriteLine("TRUE")  
  6. Else  
  7. Console.WriteLine("FALSE")  
  8. End If  
  9. End Sub  
  10. Function PA()Function PA() 
    As Boolean  
  11. Console.WriteLine("PA")  
  12. PA = True 
  13. End Function  
  14. Function PB()Function PB() 
    As Boolean  
  15. Console.WriteLine("PB")  
  16. PB = True 
  17. End Function  
  18. End Module 

執(zhí)行結(jié)果:

 
 
 
  1. PA  
  2. PB  
  3. FALSE 

這樣很明顯就可以得到結(jié)論了。

于是就只好馬上看看VB.NET的AND運(yùn)算的幫助,證實(shí)了我的想法,并且?guī)椭募线€給了這樣一個(gè)詞的參照,AndAlso。

原來如此......

在VB.NET短路判斷中與C#的&&等價(jià)的是AndAlso!

以前雖然有機(jī)會用一些C# To VB.NET的工具,可是就是沒有注意到這點(diǎn)。實(shí)在是夠失敗。

另: 還有一個(gè)新的關(guān)鍵字,OrElse。


文章題目:VB.NET短路判斷問題解析
URL地址:http://www.5511xx.com/article/dhhddog.html