自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

VB.NET短路判斷問題解析

開發(fā) 后端
VB.NET短路判斷的一些錯誤解決方法將會在這篇文章中給出。希望對又需要的朋友可以通過我們介紹的相關內(nèi)容充分了解其中的概念。

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

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

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

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í)行結果:

  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í)行結果:

  1. PA  
  2. FALSE 

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

  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í)行結果:

  1. PA  
  2. PB  
  3. FALSE 

這樣很明顯就可以得到結論了。

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

原來如此......

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

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

另: 還有一個新的關鍵字,OrElse。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-10-09 15:59:41

VB.NET對象

2009-10-29 10:04:57

VB.NET Read

2009-10-29 16:01:54

VB.NET資源文件

2010-01-14 17:41:57

VB.NET變量范圍

2010-01-21 16:37:56

VB.NET變量聲明

2009-11-02 14:48:45

VB.NET HOOK

2010-01-15 16:46:05

VB.NET集合存儲

2010-01-20 14:52:21

VB.NET修改數(shù)據(jù)窗

2009-10-09 17:40:38

VB.Net問題集

2010-01-11 17:40:36

VB.NET相框效果

2009-10-29 13:46:14

VB.NET DES加

2010-01-19 15:08:18

VB.NET對象成員

2009-10-26 17:10:53

VB.NET word

2010-01-15 16:12:40

VB.NET調(diào)用DLL

2010-01-18 18:06:07

VB.NET多線程

2009-10-14 14:19:00

VB.NET創(chuàng)建表示層

2010-01-19 13:36:16

VB.NET可選參數(shù)

2009-10-27 11:16:20

VB.NET應用框架

2009-11-02 14:55:52

VB.NET Obje

2009-10-20 09:28:18

VB.NET Prin
點贊
收藏

51CTO技術棧公眾號