VB.Net - 運算符

2022-07-01 15:20 更新

運算符是一個符號,通知編譯器執(zhí)行特定的數學或邏輯操作。 VB.Net豐富的內置運算符,并提供以下類型的常用運算符:

  • 算術運算符

  • 比較運算符

  • 邏輯/位運算符

  • 位移位運算符

  • 賦值運算符

  • 其他運算符

本教程將介紹最常用的運算符。

算術運算符

下表顯示了VB.Net支持的所有算術運算符。 假設變量A保持2,變量B保持7,則:

顯示示例

運算符 描述
^

將一個操作數作為為另一個的冪

B^A 結果為 49
+

添加兩個操作數s

A + B 結果為9
- 從第一個操作數中減去第二個操作數 A - B 結果為 -5
*

將兩個操作數相乘

A * B 結果為 14
/ 將一個操作數除以另一個操作數,并返回一個浮點結果 B / A 結果為 3.5
\ 將一個操作數除以另一個操作數,并返回一個整數結果 B \ A 結果為 3
MOD 模數運算符和整數除法后的余數 B MOD A 結果為 1

比較運算符

下表顯示了VB.Net支持的所有比較運算符。 假設變量A保持10,變量B保持20,則:

顯示示例

運算符 描述
= 檢查兩個操作數的值是否相等; 如果是,則結果為真。 (A = B)為假。

<>

檢查兩個操作數的值是否相等; 如果值不相等,則結果為真。

(A<>B)為真。
> 檢查左操作數的值是否大于右操作數的值; 如果是,則結果為真。 (A> B)為假。
< 檢查左操作數的值是否小于右操作數的值; 如果是,則結果為真。 (A <B)為真。
> = 檢查左操作數的值是否大于或等于右操作數的值; 如果是,則結果為真。 (A> = B)為假。
<= 檢查左操作數的值是否小于或等于右操作數的值; 如果是,則結果為真。 (A <= B)為真。

除了上述情況外,VB.Net提供了三個比較運算符,我們將在以后的章節(jié)中使用; 然而,我們在這里給出一個簡短的描述。


1、

Is運算符

- 它比較兩個對象引用變量,并確定兩個對象引用是否引用相同的對象,而不執(zhí)行值比較。 如果object1和object2都引用完全相同的對象實例,則結果為True; 否則,結果為False。


2、

IsNot運算符

- 它還比較兩個對象引用變量,并確定兩個對象引用是否引用不同的對象。 如果object1和object2都引用完全相同的對象實例,則結果為False; 否則,結果為True。


3、

Like運算符

- 它將字符串與模式進行比較。

邏輯/位運算符

下表顯示了VB.Net支持的所有邏輯運算符。 假設變量A保持布爾值True,變量B保持布爾值False,則:

顯示示例

運算符 描述
And 它是邏輯以及按位AND運算符。 如果兩個操作數都為真,則條件為真。 此運算符不執(zhí)行短路,即,它評估兩個表達式。 (A和B)為假。
Or 它是邏輯以及按位或運算符。 如果兩個操作數中的任何一個為真,則條件為真。 此運算符不執(zhí)行短路,即,它評估兩個表達式。 (A或B)為真。
Not 它是邏輯以及按位非運算符。 用于反轉其操作數的邏輯狀態(tài)。 如果條件為真,則邏輯非運算符將為假。 沒有(A和B)為真。
Xor 它是邏輯以及按位邏輯異或運算符。 如果兩個表達式都為True或兩個表達式都為False,則返回True; 否則返回False。 該運算符不會執(zhí)行短路,它總是評估這兩個表達式,并且沒有該運算符的短路對應。 異或B為真。
AndAlso 邏輯  AND 運算符適用布爾型數據 執(zhí)行短路。 (A AndAlso運算B)為假。
OrElse 它是邏輯或運算符。 它只適用于布爾數據。 它執(zhí)行短路。 (A OrElse運算B)為真。
IsFalse 它確定表達式是否為假。  
IsTrue 它確定表達式是否為真。  

位移運算符

我們已經討論了按位運算符。 位移運算符對二進制值執(zhí)行移位操作。 在進入位移運算符之前,讓我們來了解位操作。


按位運算符處理位并執(zhí)行逐位操作。 &,|和^的真值表如下:

p q p&Q p | q p ^ Q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1

假設A = 60; 和B = 13; 現在的二進制格式,他們將如下:

A = 0011 1100
B = 0000 1101
-----------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
?A = 1100 0011

我們已經看到VB.Net支持的位運算符是And,Or,Xor和Not。 位移位算子分別是用于左移和右移的>>和<<。

假設變量A保持60,變量B保持13,則:

顯示示例

運算符描述示例
And如果兩個操作數都存在,則按位AND運算符將一個位復制到結果。(A AND B) 結果為 12, 即 0000 1100
Or二進制OR運算符復制一個位,如果它存在于任一操作數。(A Or B) 結果為 61, 即0011 1101
Xor二進制XOR運算符復制該位,如果它在一個操作數中設置,但不是兩個操作數。(A Xor B) 結果為 49, 即 0011 0001
Not二進制補碼運算符是一元的,具有“翻轉”位的效果。(Not A ) 結果為 -61,即1100 0011,以補碼形式表示,因為其為有符號二進制數。

<<二進制左移位運算符。 左操作數值向左移動由右操作數指定的位數。A << 2結果為240, 即 1111 0000
>>二進制右移運算符。 左操作數值向右移動由右操作數指定的位數。A >> 2 結果為 15, 即 0000 1111

賦值運算符

VB.Net支持以下賦值運算符:

顯示示例

運算符 描述
=

簡單賦值操作符,將值從右側操作數分配給左側操作數

C = A + B A + B將賦值為C
+ = 添加AND賦值運算符,向左操作數添加右操作數,并將結果賦值給左操作數 C + = A等于C = C + A
- = 減法AND賦值運算符,它從左操作數中減去右操作數,并將結果賦值給左操作數 ? - = A等于C = C - A
* = 乘法AND賦值運算符,它將右操作數與左操作數相乘,并將結果賦值給左操作數 C * = A等于C = C * A
/ = 除法AND賦值運算符,它用右操作數劃分左操作數,并將結果分配給左操作數(浮點除法) C / = A等于C = C / A
= 除法AND賦值運算符,它用右操作數劃分左操作數,并將結果分配給左操作數(整數除法) ? = A等于C = C A
^ = 指數和賦值運算符。 它將左操作數提升為右操作數的冪,并將結果分配給左操作數。 C ^ = A等于C = C ^ A
<< = 左移AND賦值運算符 C語言的<< = 2是同C = C << 2
>> = 右移AND賦值運算符 C >> = 2 >> 2同C = C
&= 將String表達式連接到String變量或屬性,并將結果分配給變量或屬性。

STR1&= STR2 等價于

STR1 = STR1 + STR2(這里的加表示把兩個字符串連接起來)

其他運算符

有很少其他重要的操作系統支持VB.Net。

顯示示例

運算符 描述
AddressOf 返回過程的地址。
AddHandler Button1.Click,
AddressOf Button1_Click
Await它應用于異步方法或lambda表達式中的操作數,以暫停該方法的執(zhí)行,直到等待的任務完成。
Dim result As res
= Await AsyncMethodThatReturnsResult()
Await AsyncMethod()
GetType它返回指定類型的Type對象。 Type對象提供有關類型的信息,例如其屬性,方法和事件。
MsgBox(GetType(Integer).ToString())
Function Expression 它聲明定義函數lambda表達式的參數和代碼。
Dim add5 = Function(num As
 Integer) num + 5
'prints 10
Console.WriteLine(add5(5))
If 它使用短路評估有條件地返回兩個值之一。 可以使用三個參數或兩個參數調用If運算符。
Dim num = 5
Console.WriteLine(If(num >= 0,
"Positive", "Negative"))

VB.Net中的運算符優(yōu)先級

運算符優(yōu)先級確定表達式中的術語分組。 這會影響表達式的計算方式。 某些運算符比其他運算符具有更高的優(yōu)先級; 例如,乘法運算符的優(yōu)先級高于加法運算符:
例如,x = 7 + 3 * 2; 這里,x被分配13,而不是20,因為運算符 *具有比+高的優(yōu)先級,所以它首先乘以3 * 2,然后加到7。
這里,具有最高優(yōu)先級的運算符出現在表的頂部,具有最低優(yōu)先級的運算符出現在底部。 在表達式中,將首先計算較高優(yōu)先級運算符。

顯示示例

運算符 優(yōu)先級
Await 最高
Exponentiation (^)  
Unary identity and negation (+, -)  
Multiplication and floating-point division (*, /)  
Integer division (\)  
Modulus arithmetic (Mod)  
Addition and subtraction (+, -)  
Arithmetic bit shift (<<, >>)  
All comparison operators (=, <>, <, <=, >, >=, Is, IsNot, Like, TypeOf...Is)  
Negation (Not)  
Conjunction (And, AndAlso)  
Inclusive disjunction (Or, OrElse)  
Exclusive disjunction (Xor) 最低


以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號