运算符
运算符是一个符号,通知编译器执行特定的数学或逻辑操作。 VB.Net丰富的内置运算符,并提供以下类型的常用运算符:
算术运算符
比较运算符
逻辑/位运算符
位移位运算符
赋值运算符
其他运算符
本教程将介绍最常用的运算符。
算术运算符
下表显示了VB.Net支持的所有算术运算符。 假设变量A保持2,变量B保持7,则:
运算符 |
描述 |
例 |
^ |
Raises one operand to the power of anothe 将一个操作数提升为另一个的权力 |
B^A will give 49 |
+ |
Adds two operand 添加两个操作数s |
A + B will give 9 |
- |
Subtracts second operand from the first 从第一个操作数中减去第二个操作数 |
A - B will give -5 |
* |
Multiplies both operands 将两个操作数相乘 |
A * B will give 14 |
/ |
Divides one operand by another and returns a floating point result 将一个操作数除以另一个操作数,并返回一个浮点结果 |
B / A will give 3.5 |
\ |
Divides one operand by another and returns an integer result 将一个操作数除以另一个操作数,并返回一个整数结果 |
B \ A will give 3 |
MOD |
Modulus Operator and remainder of after an integer division 模数运算符和整数除法后的余数 |
B MOD A will give 1 |
比较运算符
下表显示了VB.Net支持的所有比较运算符。 假设变量A保持10,变量B保持20,则:
运算符 |
描述 |
例 |
= |
Checks if the values of two operands are equal or not; if yes, then condition becomes true. 检查两个操作数的值是否相等; 如果是,则条件变为真。 |
(A = B)是不正确的。 |
<> |
Checks if the values of two operands are equal or not; if values are not equal, then condition becomes true. 检查两个操作数的值是否相等; 如果值不相等,则条件为真。 |
(AB)为真。 |
> |
Checks if the value of left operand is greater than the value of right operand; if yes, then condition becomes true. 检查左操作数的值是否大于右操作数的值; 如果是,则条件变为真。 |
(A> B)是不正确的。 |
< |
Checks if the value of left operand is less than the value of right operand; if yes, then condition becomes true. 检查左操作数的值是否小于右操作数的值; 如果是,则条件变为真。 |
(A <B)为真。 |
> = |
Checks if the value of left operand is greater than or equal to the value of right operand; if yes, then condition becomes true. 检查左操作数的值是否大于或等于右操作数的值; 如果是,则条件变为真。 |
(A> = B)是不正确的。 |
<= |
Checks if the value of left operand is less than or equal to the value of right operand; if yes, then condition becomes true. 检查左操作数的值是否小于或等于右操作数的值; 如果是,则条件变为真。 |
(A <= B)为真。 |
除了上述情况外,VB.Net提供了三个比较运算符,我们将在以后的章节中使用; 然而,我们在这里给出一个简短的描述。
1、Is运算符 - 它比较两个对象引用变量,并确定两个对象引用是否引用相同的对象,而不执行值比较。 如果object1和object2都引用完全相同的对象实例,则result为True; 否则,result为False。
2、IsNot运算符 - 它还比较两个对象引用变量,并确定两个对象引用是否引用不同的对象。 如果object1和object2都引用完全相同的对象实例,则result为False; 否则,result为True。
3、Like运算符 - 它将字符串与模式进行比较。
逻辑/位运算符
下表显示了VB.Net支持的所有逻辑运算符。 假设变量A保持布尔值True,变量B保持布尔值False,则:
运算符 |
描述 |
例 |
And |
It is the logical as well as bitwise AND operator. If both the operands are true, then condition becomes true. This operator does not perform short-circuiting, i.e., it evaluates both the expressions. 它是逻辑以及按位AND运算符。 如果两个操作数都为真,则条件为真。 此运算符不执行短路,即,它评估两个表达式。 |
(A和B)为假。 |
Or |
It is the logical as well as bitwise OR operator. If any of the two operands is true, then condition becomes true. This operator does not perform short-circuiting, i.e., it evaluates both the expressions. 它是逻辑以及按位或运算符。 如果两个操作数中的任何一个为真,则条件为真。 此运算符不执行短路,即,它评估两个表达式。 |
(A或B)为真。 |
Not |
It is the logical as well as bitwise NOT operator. Use to reverses the logical state of its operand. If a condition is true, then Logical NOT operator will make false. 它是逻辑以及按位非运算符。 用于反转其操作数的逻辑状态。 如果条件为真,则逻辑非运算符将为假。 |
没有(A和B)为真。 |
Xor |
It is the logical as well as bitwise Logical Exclusive OR operator. It returns True if both expressions are True or both expressions are False; otherwise it returns False. This operator does not perform short-circuiting, it always evaluates both expressions and there is no short-circuiting counterpart of this operator. 它是逻辑以及按位逻辑异或运算符。 如果两个表达式都为True或两个表达式都为False,则返回True; 否则返回False。 该运算符不会执行短路,它总是评估这两个表达式,并且没有该运算符的短路对应。 |
异或B为真。 |
AndAlso |
It is the logical AND operator. It works only on Boolean data. It performs short-circuiting. 它是逻辑 AND 运算符。它仅适用于布尔型数据。它执行短路。 |
(A AndAlso运算B)为假。 |
OrElse |
It is the logical OR operator. It works only on Boolean data. It performs short-circuiting. 它是逻辑或运算符。 它只适用于布尔数据。 它执行短路。 |
(A OrElse运算B)为真。 |
IsFalse |
It determines whether an expression is False. 它确定表达式是否为假。 |
|
IsTrue |
It determines whether an expression is True. 它确定表达式是否为真。 |
|
位移运算符
我们已经讨论了按位运算符。 位移运算符对二进制值执行移位操作。 在进入位移运算符之前,让我们来了解位操作。
按位运算符处理位并执行逐位操作。 &,|和^的真值表如下:
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支持的Bitwise运算符是And,Or,Xor和Not。 位移位算子分别是用于左移和右移的>>和<<。
假设变量A保持60,变量B保持13,则:
运算符 |
描述 |
示例 |
And |
Bitwise AND Operator copies a bit to the result if it exists in both operands. 如果两个操作数都存在,则按位AND运算符将一个位复制到结果。 |
(A AND B) will give 12, which is 0000 1100 |
Or |
Binary OR Operator copies a bit if it exists in either operand. 二进制OR运算符复制一个位,如果它存在于任一操作数。 |
(A Or B) will give 61, which is 0011 1101 |
Xor |
Binary XOR Operator copies the bit if it is set in one operand but not both. 二进制XOR运算符复制该位,如果它在一个操作数中设置,但不是两个操作数。 |
(A Xor B) will give 49, which is 0011 0001 |
Not |
Binary Ones Complement Operator is unary and has the effect of 'flipping' bits. 二进制补码运算符是一元的,具有“翻转”位的效果。 |
(Not A ) will give -61, which is 1100 0011 in 2's complement form due to a signed binary number. |
<< |
Binary Left Shift Operator. The left operands value is moved left by the number of bits specified by the right operand. 二进制左移位运算符。 左操作数值向左移动由右操作数指定的位数。 |
A << 2 will give 240, which is 1111 0000 |
>> |
Binary Right Shift Operator. The left operands value is moved right by the number of bits specified by the right operand. 二进制右移运算符。 左操作数值向右移动由右操作数指定的位数。 |
A >> 2 will give 15, which is 0000 1111 |
赋值运算符
VB.Net支持以下赋值运算符:
运算符 |
描述 |
例 |
= |
Simple assignment operator, Assigns values from right side operands to left side operand 简单赋值操作符,将值从右侧操作数分配给左侧操作数 |
C = A + B A + B将赋值为C |
+ = |
Add AND assignment operator, It adds right operand to the left operand and assigns the result to left operand 添加AND赋值运算符,向左操作数添加右操作数,并将结果赋值给左操作数 |
C + = A等于C = C + A |
- = |
Subtract AND assignment operator, It subtracts right operand from the left operand and assigns the result to left operand 减法AND赋值运算符,它从左操作数中减去右操作数,并将结果赋值给左操作数 |
Ç - = A等于C = C - 一个 |
* = |
Multiply AND assignment operator, It multiplies right operand with the left operand and assigns the result to left operand 乘法AND赋值运算符,它将右操作数与左操作数相乘,并将结果赋值给左操作数 |
C = A等于C = C A |
/ = |
Divide AND assignment operator, It divides left operand with the right operand and assigns the result to left operand (floating point division) 除法AND赋值运算符,它用右操作数划分左操作数,并将结果分配给左操作数(浮点除法) |
C / = A等于C = C / A |
\ = |
Divide AND assignment operator, It divides left operand with the right operand and assigns the result to left operand (Integer division) 除法AND赋值运算符,它用右操作数划分左操作数,并将结果分配给左操作数(整数除法) |
ç = A等于C = C A |
^ = |
Exponentiation and assignment operator. It raises the left operand to the power of the right operand and assigns the result to left operand. 指数和赋值运算符。 它将左操作数提升为右操作数的幂,并将结果分配给左操作数。 |
C ^ = A等于C = C ^ A |
<< = |
Left shift AND assignment operator 左移AND赋值运算符 |
C语言的<< = 2是同C = C << 2 |
>> = |
Right shift AND assignment operator 右移AND赋值运算符 |
C >> = 2 >> 2同C = C |
&= |
Concatenates a String expression to a String variable or property and assigns the result to the variable or property. 将String表达式连接到String变量或属性,并将结果分配给变量或属性。 |
STR1&= STR2赛车是一样的 STR1 = STR1与STR2 |
其他运算符
有很少其他重要的操作系统支持VB.Net。
运算符 |
描述 |
AddressOf |
Returns the address of a procedure. 返回过程的地址。 |
Await |
It is applied to an operand in an asynchronous method or lambda expression to suspend execution of the method until the awaited task completes. 它应用于异步方法或lambda表达式中的操作数,以暂停该方法的执行,直到等待的任务完成。 |
GetType |
It returns a Type object for the specified type. The Type object provides information about the type such as its properties, methods, and events. 它返回指定类型的Type对象。 Type对象提供有关类型的信息,例如其属性,方法和事件。 |
Function Expression |
It declares the parameters and code that define a function lambda expression. 它声明定义函数lambda表达式的参数和代码。 |
If |
It uses short-circuit evaluation to conditionally return one of two values. The If operator can be called with three arguments or with two arguments. 它使用短路评估有条件地返回两个值之一。 可以使用三个参数或两个参数调用If运算符。 |
VB.Net中的运算符优先级
运算符优先级确定表达式中的术语分组。 这会影响表达式的计算方式。 某些运算符比其他运算符具有更高的优先级; 例如,乘法运算符的优先级高于加法运算符:
例如,x = 7 + 3 * 2; 这里,x被分配13,而不是20,因为operator *具有比+高的优先级,所以它首先乘以3 * 2,然后加到7。
这里,具有最高优先级的运算符出现在表的顶部,具有最低优先级的运算符出现在底部。 在表达式中,将首先计算较高优先级运算符。
运算符 |
优先级 |
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) |
最低 |