AndAlso是短路的邏輯與運算符,And有兩個含義:非短路的邏輯與運算符;按位與運算符
專注于為中小企業(yè)提供成都做網(wǎng)站、網(wǎng)站建設(shè)服務(wù),電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)阿克塞哈薩克族自治免費做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了1000+企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設(shè)實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
Dim c=a AndAlso b表達式中,若表達式a的計算結(jié)果是False,無論表達式b是什么樣,都不再進行計算,直接返回c的值
Dim c=a And b表達式中,無論a和b是怎樣的表達式,都要全部計算完成后再返回c的值
AndAlso相比And的區(qū)別,除了性能優(yōu)勢外,更重要的是,從語義上來說
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
這種實際編程中經(jīng)常遇到的判斷,如果把AndAlso替換成And,在m Is Nothing的情況下會引發(fā)NullReferenceException空引用異常,而AndAlso能確保不會引發(fā)空引用異常
進行邏輯運算的時候,And只在一種情況下有價值:不僅想要得到c的值,而且無論如何都希望執(zhí)行b過程,并且自己能確保a=False不會影響b的執(zhí)行。其他情況下務(wù)必使用AndAlso
OrElse和Or同理,作為上面那句的逆判斷
Dim c=m Is Nothing OrElse m.Failed
也是經(jīng)常使用的。當(dāng)然在進行位運算時,只能用And和Or,AndAlso和OrElse沒有位運算功能
根據(jù)使用位置的不同,有三種不同的意思:
1、字符串連接符:
s = "123" "abc"
那么s的值是"123abc"
2、長整型數(shù)(Long)定義符:
Dim k
相當(dāng)于
Dim k As Long
3、十六進制或八進制數(shù)的前導(dǎo)符:
Print H3EF7
H3EF7就是個16進制數(shù)
Print O542
O542則是個8進制數(shù)
=也有兩種不同意思:
1、賦值命令符:
a = 123
就是把變量a的值設(shè)為123的意思
2、邏輯比較運算符:
If a = b Then
如果a等于b就怎樣怎樣
另外,你說的VB是指VB6還是VB.NET?如果是VB.NET,那么
a = b 相當(dāng)于 a = a b
如果是VB6,那么:
a = b
VB會先定義一個長整型變量a,然后讓它的值等于變量b
vb6.0中也有,
數(shù)字 就是讓這個數(shù)字為long型(隱式聲明Long 數(shù)據(jù)類型)
這就顯然是令數(shù)字0為long型的意思
如果不加就會默認是integer型
有很多作用
c=a b 就是把a和b以字符串形式連接起來并賦給c
如果只是要將其它類型數(shù)據(jù)轉(zhuǎn)換為字符串只要用cstr(變量)就行了
dim x 在定義的時候就是把變量x定義為long型,就像 dim x as long 一樣的效果
H十六進制數(shù) 的H表示后面的是十六進制數(shù),還有O是表示后面的是八進制數(shù)
VB中不能用。
VB也可以按位與運算的。
x=15 and 8的值就是8。
VB中的And可以表示按位與,也可以表示邏輯與,就看參與運算的量是什么類型的了。