当前位置: 首页 > 教程 > VB.Net >

VB.Net运算符

精华
小牛编辑
135浏览
2023-03-14

运算符是一个符号,它告诉编译器执行特定的数学或逻辑操作。VB.Net有丰富的内置运算符,并提供以下类型的常用运算符:

  • 算术运算符
  • 比较运算符
  • 逻辑/位运算符
  • 位移运算符
  • 赋值运算符
  • 其他操作员

本教程将介绍最常用的运算符。

算术运算符

下表显示了VB.Net支持的所有算术运算符。假设变量A=2,变量B=7,则:

运算符 描述 说明
^ 一个操作数的指定次幂值 B^A = 49
+ 两个操作数相加 A + B = 9
- 第一个操作数减去第二个操作数 A - B = -5
* 两个操作数相乘 A * B = 14
/ 第一个操作数除以第二个操作数 B / A = 3.5
\ 第一个操作数除以第二个操作数的整数值 B / A = 3
MOD 模运算符,整数除法后的余数
B / A = 1

算术运算符示例:https://www.xnip.cn/vb.net/vb.net_arithmetic_operators.html

比较运算符

下表显示了VB.Net支持的所有比较运算符。假设变量A=10,变量B=20,则:

运算符 描述 说明
== 检查两个操作数的值是否相等; 如果是,那么条件为True (A == B)结果为:False
<> 检查两个操作数的值是否相等; 如果值不相等,则条件为True (A <> B)结果为:True
> 检查左操作数的值是否大于右操作数的值; 如果是,则条件为True (A > B)结果为:False
< 检查左操作数的值是否小于右操作数的值; 如果是,则条件为True (A < B)结果为:True
>= 检查左操作数的值是否大于等于右操作数的值; 如果是,则条件为True (A >= B)结果为:False
<= 检查左操作数的值是否小于等于右操作数的值; 如果是,则条件为True (A <= B)结果为:True

除此之外,VB.Net还提供了三个比较运算符,我们将在以后的章节中使用它们。 但是,在这里给出一个简短的描述。

  • Is运算符 - 它比较两个对象引用变量,并确定两个对象引用是否引用同一个对象而不执行值比较。 如果object1object2都引用完全相同的对象实例,则结果为True; 否则,结果为False
  • IsNot运算符 - 它还比较两个对象引用变量,并确定两个对象引用是否引用不同的对象。 如果object1object2都引用完全相同的对象实例,则结果为False; 否则,结果为True
  • Like运算符 - 它将字符串与模式进行比较。

有关比较运算符的示例代码:https://www.xnip.cn/vb.net/vb.net_comparison_operators.html

逻辑/位运算符

下表显示了VB.Net支持的所有逻辑运算符。假设变量A = True,变量B = False,则:

运算符 描述 说明
And 它是逻辑运算符,也是按位运算符。如果两个操作数都是:True,则条件成立。 该运算符不执行短路,即它评估两个表达式的值。 (A And B)结果为:False
Or 它是逻辑以及按位或运算符。如果两个操作数中的任何一个为True,则条件成立。 该运算符不执行短路,即它评估两个表达式。 (A Or B)结果为:True
Not 它是逻辑,也是按位运算符。用于反转其操作数的逻辑状态。如果条件成立,那么逻辑非运算符结果为:False Not(A And B)结果为:True
Xor 它是逻辑,也是按位的逻辑异或运算符。 如果两个表达式均为True或两个表达式均为False,则返回True; 否则返回False。 该运算符不执行短路,它总是评估这两个表达式,并且没有短路对应。 A Xor B结果为:True
AndAlso 这是逻辑AND运算符,它只适用于布尔数据,并可执行短路。 (A AndAlso B)结果为:False
OrElse 这是合乎逻辑的OR运算符,它只适用于布尔数据,并可执行短路。 (A OrElse B)结果为:True
IsFalse 它确定一个表达式是否为False
IsTrue 它确定一个表达式是否为True

有关逻辑/位运算符的示例代码:https://www.xnip.cn/vb.net/vb.net_logical_operators.html

位移运算符

前面已经讨论了按位运算符,移位运算符对二进制值执行移位操作。在进入移位运算符之前,让我们了解位操作。

按位运算符处理位并执行逐位操作。 |^的真值表如下:

假设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支持的按位运算符是:AndOr,XorNot。移位运算符分别是:>><<表示左移和右移。

假设变量A = 60,变量B = 13,那么:

运算符 描述 说明
And 如果在两个操作数中都存在,则按位AND运算符会复制结果。 (A AND B)结果为:12, 也就是:0000 1100
Or 二进制或运算符复制一个位,如果它存在于任一操作数。 (A Or B) 结果为 61, 也就是:0011 1101
Xor 如果二进制XOR运算符被设置在一个操作数中,但它们不能同时被二进制XOR运算符复制。 (A Xor B)结果为:49,也就是:0011 0001
Not 二进制补码运算符是一元运算符,具有“翻转”位的作用。 (Not A )结果为:-61,也就是:1100 0011
<< 二进制左移运算符。左操作数值左移由右操作数指定的位数。 A << 2 结果为:240, 也就是:1111 0000
>> 二进制右移运算符。左操作数值右移由右操作数指定的位数。 A >> 2结果为:15, 也就是:0000 1111

有关位移运算符示例代码如下:https://www.xnip.cn/vb.net/vb.net_bitshift_operators.html

赋值运算符

VB.Net支持下列赋值运算符:

运算符 描述 说明
= 简单赋值操作符,将右侧操作数的值赋给左侧操作数 C = A + B将把A + B的值赋值给C
+= 添加和赋值操作符,它将右操作数添加到左操作数,并将结果赋给左操作数 C += A 等效于 C = C + A
-= 减去和赋值运算符,从左边的操作数中减去右边的操作数,并将结果赋给左边的操作数 C -= A 等效于 C = C - A
*= 乘法和赋值运算符,它将右操作数与左操作数相乘,并将结果赋给左操作数 C *= A 等效于 C = C * A
/= 除法和赋值运算符,用左操作数和右运算数分开,赋值给左操作数(浮点除法) C /= A 等效于 C = C / A
\= 除法和赋值运算符,用左操作数除以右操作数,并将结果赋给左操作数(整数除法) C \= A 等效于 C = C \A
^= 指数运算和赋值运算符。它将左操作数指定的右操作数指数的幂值,并将结果赋给左操作数。 C^=A 等效于 C = C ^ A
<<= 左移和赋值运算符 C <<= 2 等效于 C = C << 2
>>= 右移和赋值运算符 C >>= 2 等效于 C = C >> 2
&= 将一个字符串(String)表达式连接到一个字符串(String)变量或属性,并将结果赋给变量或属性。 Str1 &= Str2 等效于 Str1 = Str1 & Str2

有关赋值运算符示例代码如下: https://www.xnip.cn/vb.net/vb.net_assignment_operators.html

其他运算符

VB.Net支持其他重要的运算符。

  • AddressOf - 返回过程的地址。
    示例:

    AddHandler Button1.Click,
    AddressOf Button1_Click
    
  • Await - 它被应用于异步方法或lambda表达式中的操作数,以挂起方法的执行,直到等待完成的任务完成。
    示例:

    Dim result As res= Await AsyncMethodThatReturnsResult()
    Await AsyncMethod()
    
  • GetType - 它为指定的类型返回一个Type对象。 Type对象提供有关类型的信息,例如属性,方法和事件。
    示例:

    MsgBox(GetType(Integer).ToString())
    
  • 函数表达式 - 它声明了定义函数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"))
    

有关其他运算符示例代码如下: https://www.xnip.cn/vb.net/vb.net_misc_operators.html

VB.Net运算符优先级

运算符优先级决定表达式中术语的分组。这会影响表达式的评估方式。某些运算符的优先级高于其他运算符,则会被优先运算; 例如,乘法运算符比加法运算符具有更高的优先级:

例如,表达式:x = 7 + 3 * 2; 在这里,x被赋值为13,而不是20,因为运算符*的优先级高于+,所以它先乘以3 * 2,然后加上7,所以最后结果为:13

在这里,优先级最高的操作符出现在表顶部,最低优先级的操作符出现在底部。 在表达式中,更高优先级的运算符将首先被评估(计算)。

运算符 描述
Await 最高级
幂(^)
一元标识符和否定(+-)
乘法和浮点除法(*, /)
整数除(\)
模数运算(Mod)
算术位移(<<>>)
所有比较运算符(=<><<=>>=IsIsNotLikeTypeOf, ..., Is)
否定(Not)
连接(And, AndAlso)
包含分离(OR,OrElse)
异或(XOR)

有关运算符优先级代码示例,请参考: https://www.xnip.cn/vb.net/vb.net_operators_precedence.html

最后更新:

类似资料

  • 主要内容:创建一个字符串对象,String类的属性,String类的方法,例子在VB.Net中,可以使用字符串作为字符数组,但更常见的做法是使用关键字来声明一个字符串变量。关键字是类的别名。 创建一个字符串对象 可以使用以下方法之一创建字符串对象: 通过将一个字符串文字分配给一个变量 通过使用一个类的构造函数 通过使用字符串连接运算符(+) 通过检索一个属性或调用返回一个字符串的方法 通过调用格式化方法将值或对象转换为其字符串表示形式 以下示例演示了如何创建对象: 执行上面

  • 主要内容:VB.Net修饰符列表修饰符是添加了任何编程元素的关键字,以特别强调编程元素在程序中的行为或将被访问 例如,访问修饰符:, , , , 等指示编程元素的访问级别,如:变量,常量,枚举或类。 VB.Net修饰符列表 下表提供了VB.Net修饰符的完整列表: 编号 修饰符 描述 1 指定Visual Basic应将所有字符串封送到美国国家标准学会(ANSI)值,而不管正在声明的外部过程的名称如何。 2 指定源文件开始处的属

  • 运算符是处理数据的基本方法,用来从现有的值得到新的值。JavaScript 提供了多种运算符,覆盖了所有主要的运算。 概述 JavaScript 共提供10个算术运算符,用来完成基本的算术运算。 加法运算符:x + y 减法运算符: x - y 乘法运算符: x * y 除法运算符:x / y 指数运算符:x ** y 余数运算符:x % y 自增运算符:++x 或者 x++ 自减运算符:--x

  • void 运算符 void运算符的作用是执行一个表达式,然后不返回任何值,或者说返回undefined。 void 0 // undefined void(0) // undefined 上面是void运算符的两种写法,都正确。建议采用后一种形式,即总是使用圆括号。因为void运算符的优先性很高,如果不使用括号,容易造成错误的结果。比如,void 4 + 7实际上等同于(void 4) + 7。

  • 主要内容:定义函数,函数返回值,递归函数,参数数组,将数组作为函数参数传递一个过程是一组语句,在调用时一起执行任务。过程执行后,控制权返回到调用过程的语句。 VB.Net有两种类型的程序: 函数 子程序或Subs 重要区别: 函数返回一个值,而Subs不返回任何一个值。 定义函数 语句用于声明函数的名称,参数和函数体。语句的语法是: 其中, Modifiers - 指定函数的访问级别; 可能的值有:, , , , 以及有关重载,覆盖,共享和投影的信息。 Function

  • 主要内容:各种集合类及其用法集合类是专门用于数据存储和检索的类。这些类提供对堆栈,队列,列表和哈希表的支持。大多数集合类实现相同的接口。 集合类有多种用途,例如:动态分配内存到元素和根据索引访问项目列表等。这些类创建了类的对象集合,它是VB.Net中所有数据类型的基类。 各种集合类及其用法 以下是命名空间的各种常用类。点击以下链接查看它们的详细信息。 编号 类 描述 1 ArrayList 它代表可以单独索引的对象的有序集合