日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

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

新聞中心

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

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

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

今天剛好有機會評價一位同仁的程序,我的TRACE總是在不該出現(xiàn)的時候出現(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運算的幫助,證實了我的想法,并且?guī)椭募线€給了這樣一個詞的參照,AndAlso。

原來如此......

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

以前雖然有機會用一些C# To VB.NET的工具,可是就是沒有注意到這點。實在是夠失敗。

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


新聞名稱:VB.NET短路判斷問題解析
網(wǎng)頁URL:http://www.dlmjj.cn/article/dhhddog.html