Visual Basic (VB) 运算符大全(算术/比较/逻辑/位/字符串)

在 Visual Basic 中,运算符是一个编程元素,用于指定需要对作数或变量执行的作。例如,Visual Basic 中的加法 (+) 运算符用于对作数执行求和运算。

运算符是什么?

运算符 = 告诉编译器「做什么操作」的符号。

运算符分类

根据微软最新文档,VB 运算符分:

① 算术

② 比较

③ 逻辑/布尔

④ 位运算

⑤ 字符串连接

⑥ 赋值

⑦ 其他(AddressOf/GetType/If 三元等)

算术运算符

运算符

功能

示例

结果

官方备注

+

5 + 2

7

-

减/取负

5 - 2 / -x

3

一元负号详见官方「Unary Operators」

*

5 * 2

10

/

除(双精度结果)

5 / 2

2.5

始终返回 Double

\

整除(向下取整)

5 \ 2 / -5 \ 2

2 / -3

官方强调「向零截断」

Mod

取模

5 Mod 2 / -5 Mod 3

1 / 1

结果符号 = 被除数符号

^

2 ^ 3

8

返回 Double

比较运算符(返回 Boolean)

运算符

功能

示例

结果

=

相等

"abc" = "ABC"

False(默认区分大小写)

<>

不等于

3 <> 2

True

< > <= >=

大小比较

Date.Parse("2025-09-18") > #2024-01-01#

True

Like

模式匹配

"F" Like "[A-Z]"

True

Is / IsNot

对象引用比较

If obj Is Nothing Then…

提示:字符串比较受 Option Compare 影响,详见后文。

逻辑/布尔运算符

运算符

功能

短路

官方示例

And

True And False → False

Or

True Or False → True

Not

Not True → False

Xor

异或

True Xor True → False

AndAlso

条件与

False AndAlso 1/0=0 → False(后半不执行)

OrElse

条件或

True OrElse 1/0=0 → True(后半不执行)

注意:

And/Or 会两边都计算,可用于位运算;

AndAlso/OrElse 仅用于布尔短路,不能用于位运算。

5. 位运算

运算符

功能

示例

结果

And

位与

12 And 6

4

Or

位或

12 Or 6

14

Not

位取反

Not 12

-13(补码)

Xor

位异或

12 Xor 6

10

提示:位运算操作数必须为整数类型(Byte/Short/Integer/Long)。

6. 字符串连接运算符

运算符

功能

示例

官方推荐

&

强制连接

"A" & 123

A123

✅ 推荐

+

看上下文连接

"A" + "123"

A123

⚠️ 当一边是数值时可能出错

注意:始终使用 & 可避免隐式类型转换错误。

赋值与复合赋值运算符

运算符

等价写法

官方版本要求

=

x = 5

所有版本

^=

x = x ^ 2

2005+

*=

x = x * 2

2005+

/=

x = x / 2

2005+

\=

x = x \ 2

2005+

+=

x = x + 1

2005+

-=

x = x - 1

2005+

&=

s = s & "OK"

2005+

其他官方运算符

运算符

功能

官方示例

AddressOf

取过程地址

Dim del As Action = AddressOf MySub

Await

异步等待

Dim html = Await httpClient.GetStringAsync(url)

GetType

得运行时 Type

Dim t = GetType(String)

TypeOf … Is

类型判断

If TypeOf obj Is String Then…

If 三元

兼容 ?:

Dim y = If(x > 0, x, -x)

Like

模式匹配

"abc" Like "a*" → True

运算符优先级

^(幂)

+ -(一元正负)

* / \(乘除整除)

Mod

+ -(加减)

&(字符串连接)

= < > <= >= <> Like Is IsNot(比较)

Not(位/逻辑取反)

And AndAlso

Or OrElse Xor

If 三元

= *= /= \= += -= ^=&=(赋值)

记不住?用括号最保险!

Option Compare 对字符串运算的影响

文件顶部可写:

Option Compare Binary ' 默认,区分大小写

Option Compare Text ' 不区分大小写

示例:

Option Compare Text

Console.WriteLine("abc" = "ABC") ' True

Console.WriteLine("abc" Like "A*") ' True

新增:If 三元运算符(VB 2008+)

语法:If(条件, 真值, 假值)

特点:

两个分支类型必须兼容

仅计算需要的分支(短路)

Dim score As Integer = 59

Dim level As String = If(score >= 60, "及格", "不及格")

实战:工资计算器

Module PayCalc

Sub Main()

Const HOUR_PAY As Decimal = 45.5D

Console.Write("请输入本月工时:")

Dim hour As Decimal = CDec(Console.ReadLine())

Dim base As Decimal = hour * HOUR_PAY

Dim bonus As Decimal = If(hour > 160, (hour - 160) * HOUR_PAY * 0.2D, 0)

Dim total As Decimal = base + bonus

Console.WriteLine($"基本工资:{base:C}")

Console.WriteLine($"绩效奖金:{bonus:C}")

Console.WriteLine($"实发工资:{total:C}")

End Sub

End Module

运行示例:

请输入本月工时:170

基本工资:¥7,735.00

绩效奖金:¥91.00

实发工资:¥7,826.00

小结口诀

幂乘除整除取模加减连,

比较 Like Is 再逻辑,

三元 If 最后赋值,

括号一撸保平安;

字符串连接用 &,

短路布尔 AndAlso / OrElse!