Visual Basic 函数速查-运算符(19条函数)
&运算符
*运算符
+运算符
-运算符
/运算符
\运算符
^运算符
=操作符
AddressOf运算符
And运算符 比较运算符
Eqv运算符
Imp运算符
Is运算符
Like运算符
Mod运算符basic语言if语句
Not运算符
Or运算符
Xor运算符
^ 运算符
用来求一个数字的某次方,次方数为 exponent 值。
语法
result = number^exponent
^ 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
number 必需的;任何数值表达式。
exponent 必需的;任何数值表达式。
说明
只有当 exponent 为整数值时,number 才可以为负数。在表达式中执行多个指数运算时,^ 运算符的计算顺序从左到右。
result 的数据类型通常是 Double 或包含 Double 的 Variant。但是,如果 number 或 exponent 中有一个是 Null 表达式,则 result 也是 Null。
AddressOf 运算符
一个一元运算符,它将其后面的过程的地址传递给一个 API 过程,该 API 过程在参数表对应位置中需要一个函数指针。
语法
AddressOf procedurename
必需的 procedurename 指定要传递的地址是哪一个过程的地址。这个过程必须是发出调用命令的工程中的一个标准模块模块里的一个过程。
说明
当一个过程的名称出现在一个参数列表中时,通常该过程已经被计算,并且该过程值的地址也会被传递。AddressOf 允许该过程的地址被传递给动态链接库 (DLL) 中的一个 Windows API 函数,而不是传递该过程的值。API 函数然后就可以使用这个地址来调用相应的 Basic 过程,这个过程就是我们所知道的回调。AddressOf 运算符只出现在对 API 过程的调用中。
尽管可以使用 AddressOf 运算符在 Basic 过程之间传递过程指针,却不能通过这样的一个指针从 Basic 内部调用一个函数。这就是说,例如,一个使用 Basic 编写的类 不能使用这样的一个指针来回调自己的控制器。当使用 AddressOf 运算符在 Basic 内的过程之间传递一个过程的指针时,被调用过程的参数类
型必须定义为 As Long。
警告 如果不能完全理解函数回调的概念,则使用 AddressOf 运算符可能会导致意想不到的结果。必须理解回调的 Basic 部份是如何工作的,以及接受所传递的函数地址的 DLL 的代码是如何工作的。调试这样的交互操作是非常困难的,因为该程序和开发环境运行在相同的进程中。在某些情况下,系统的调试也许是不可能的。
注意 可以使用 Microsoft Visual C++ (或者类似的工具)编译的 DLLs 来创建自己的回调函数原型。要使用 AddressOf 运算符来工作,您的原型必需使用 __stdcall 调用约定。缺省的调用约定 (__cdecl) 不能与 AddressOf 运算符一起工作。
因为一个回调的调用程序不在用户自己的
程序中,所以很重要的一点是要保证回调过程中的错误不被回传到调用者。可以通过把 On Error Resume Next 语句放置于回调过程的起始处来达到这个要求。
And 运算符
用来对两个表达式进行逻辑连接。
语法
result = expression1 And expression2
And 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
expression1 必需的;任何表达式。
expression2 必需的;任何表达式。
说明
如果两个表达式的值都是 True,则 result 是 True。如果其中一个表达式的值是 False,则 result 是 False。下列表格说明如何确定 result:
如果 expression1 为 且 expression2 为 则 result 为
True True True
True False False
True Null Null
False True False
False False False
False Null False
Null True Null
Null False False
Null Null Null
And 运算符还对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:
如果在 expression1 的位为 且在 expression2 中的位为 result 为
0 0 0
0 1 0
1 0 0
1 1 1
Eqv 运算符
用来对两个表达式进行逻辑等价运算。
语法
result = expression1 Eqv expression2
Eqv 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
expression1 必需的;任何表达式。
expression2 必需的;任何表达式。
说明
如果有一个表达式是 Null,则 result 也是 Null。如果表达式都不是 Null,则根据下表来确定 result:
如果 expression1 为 且 expression2 为 则 result 为
True True True
True False False
False True False
False False True
Eqv 运算符对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:
如果在 expression1 的位为 且在 expression2 中的位为 result 为
0 0 1
0 1 0
1 0 0
1 1 1
Imp 运算符
用来对两个表达式进行逻辑蕴涵运算。
语法
result = expression1 Imp expression2
Imp 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
expression1 必需的;任何表达式。
expression2 必需的;任何表达式。
说明
下列表格说明如何确定 result:
如果 expression1 为 且 expression2 为 则 result 为
True True True
True False False
True Null Null
False True True
False False True
False Null True
Null True True
Null False Null
Null Null Null
Imp 运算符对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:
如果在 expression1 的位为 且在 expression2 中的位为 result 为
0 0 1
0 1 1
1 0 0
1 1 1
Is 运算符
用来比较两个对象的引用变量。
语法
result = object1 Is object2
Is 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
objec
t1 必需的;任何对象名称。
object2 必需的;任何对象名称。
说明
如果 object1 和 object2 两者引用相同的对象,则 result 为 True;否则,result 为 False。有很多方法使两个变量引用相同的对象。
在以下示例中,A 和 B 已被设置成与 C 引用相同的对象:
Set A = B
在下例中,A 和 B 引用的对象与 C 相同:
Set A = C
Set B = C
Like 运算符
用来比较两个字符串。
语法
result = string Like pattern
Like 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
string 必需的;任何字符串表达式。
pattern 必需的;任何字符串表达式,遵循“说明”中的模式匹配约定。
说明
如果 string 与 pattern 匹配,则 result 为 True;如果不匹配,则 result 为 False。但是如果 string 或 pattern 中有一个为 Null,则 result 为 Null。
Like 运算符的特性随着 Option Compare 语句而不同。每个模块的缺省字符串比较方法是 Option Compare Binary。
在字符串比较中,Option Compare Binary 的结果是根据字符的内部二进制表示法导出的排序顺序得到的。在 Microsoft Windows 中,排序顺序由代码页决定。下例说明通常二进制的排序顺序:
A < B < E < Z < a < b < e < z < _ < _ < _ < _ < _ <
Mod运算符
用来对两个数作除法并且只余数。
语法
result = number1 Mod number2
Mod 的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
number1 必需的;任何数值表达式。
number2 必需的;任何数值表达式。
说明
在进行 Mod 运算或求余数运算时,该运算符将 number1 用 number2 除(将浮点数字四舍五入成整数),并把余数作为 result 的值。例如,在下列表达式中,A (result) 等于 5。
A = 19 Mod 6.7
一般说来,不管 result 是否为一个整数,result 的数据类型为 Byte,Byte 变体、Integer、Integer 变体、Long 或一个包含 Long 的Variant。任何小数部分都被删除。但是,如果任何一个 Null,类型的表达式出现时,result 都将是 Null。任何 Empty 类型表达式都作为 0 处理。
Not 运算符
用来对表达式进行逻辑否定运算。
语法
result = Not expression
Not 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
expression 必需的;任何表达式。
说明
下表说明如何确定 result:
如果 expression 为 则 result 为
True False
False True
Null Null
此外,Not 运算符改变任何变量的位值,并根据下表设置 result 中相应的位:
如果在 expression 的位为 则在 result 中的位为
0 1
1 0
Or 运算符
用来对两个表达式进行逻辑析取运算。
语法
result = expression1 Or expression2
Or 运算符的语法具有以下几个部分:
部分 描述
result 必需的;任何数值变
量。
expression1 必需的;任何表达式。
expression2 必需的;任何表达式。
说明
如果两个表达式中至少有一个为 True,则 result 为 True。下列表格说明如何确定 result:
如果 expression1 为 且 expression2 为 则 result 为
True True True
True False True
True Null True
False True True
False False False
False Null Null
Null True True
Null False Null
Null Null Null
Or 运算符也对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:
如果在 expression1 的位为 且在 expression2 中的位为 result 为
0 0 0
0 1 1
1 0 1
1 1 1
Xor 运算符
用来对两个表达式进行逻辑互斥或运算。
语法
[result =] expression1 Xor expression2
Xor 运算符的语法具有以下几个部分:
部分 描述
result 可选;任何数值变量。
expression1 必需的;任何表达式。
expression2 必需的;任何表达式。
说明
如果表达式中有一个而且只有一个值为 True,则 result 为 True。但是,如果表达式中有一个为 Null,则 result 也为 Null。当两个表达式都不为 Null,则根据下表来确定 result:
如果 expression1 为 且 expression2 为 则 result 为
True True False
True False True
False True True
False False False
Xor 运算符既可作为逻辑运算符,也可作为位运算符。使用互斥或的逻辑进行的两个表达式的逐位比较,其结果通过下表说明:
如果 expression1 为 且 expression2 为 则 result 为
0 0 0
0 1 1
1 0 1
1 1 0
比较运算符
用来比较表达式。
语法
result = expression1 comparisonoperator expression2
result = object1 Is object2
result = string Like pattern
比较运算符具有以下几个部分:
部分 描述
result 必需的;任何数值变量。
expression 必需的;任何表达式。
comparisonoperator 必需的;任何比较运算符。
object 必需的;任何对象名称。
string 必需的;任何字符串表达式。
pattern 必需的;任何字符串表达式或字符的范围。
说明
下列表格中有一系列比较运算符以及判定 result 是 True、False 还是 Null 的条件:
运算符 True if False if Null if
<(小于) expression1 < expression2 expression1 >= expression2 expression1 or expression2 = Null
<=(小于或等于) expression1 <= expression2 expression1 > expression2 expression1 or expression2 = Null
>(大于) expression1 > expression2 expression1 <= expression2 expression1 or expression2 = Null
>=(大于或等于) expression1 >= expression2 expression1 < expression2 expression1 or expression2 = Null
=(等于) expression1 = expression2 expression1 <> expression2 expression1 or expression2 = Null
<>(不等于) expression1 <> expression2 expression1 = expression2 expression1 or expression2 = Null
注意 Is 和 Like 运算符有特定的比较功能,它们不同於表格中
的运算符。
在比较两个表达式的时候可能难以确定将要比较的表达式是数字还是字符串。下列表格将说明如何比较表达式,或说明当其中一个表达式不是 Variant 时,如何获得比较的结果。
如果 则
两个表达式都是数值数据类型 (Byte、Boolean、Integer、Long、Single、Double、Date、Currency 或Decimal) 进行数值比较。
两个表达式都是 String 进行字符串比较
一个表达式是数值数据类型而另一个是数字 Variant、或可以为一数字 进行数值比较。
一个表达式是数值数据类型而另一个是不能转换成数字的字符串 Variant 产生类型不匹配的错误。
一个表达式是 String,而另一个是除了 Null 以外的任何 Variant 进行字符串比较。
一个表达式是 Empty 而另一个是数值数据类型 进行数值比较,使用 0 作为 Empty 表达式。
一个表达式是 Empty 而另一个是 String 进行字符串比较,使用长度为零的字符串 ("") 作为 Empty 表达式。
如果 expression1 和 expression2 都是 Variant 表达式, 则它们的基本类型决定了比较方式。下列表格说明如何比较表达式,或指出通过比较得到的结果,此结果取决于 Variant 的基本类型:
如果 则
两个 Variant 表达式都是数值 进行数值比较。
两个 Variant 表达式都是字符串 进行字符串比较。
一个 Variant 表达式是数值而另一个是字符串 数值表达式小于字符串表达式。
一个 Variant 表达式是 Empty 而另一个是数值 进行数值比较,使用 0 作为 Empty 表达式。
一个 Variant 表达式是 Empty 而另一个是字符串 进行字符串比较,使用长度为零的字符串 ("") 作为 Empty 表达式。
两个 Variant 表达式都是 Empty 表达式相等。
当一个 Single 与一个 Double 作比较时,Double 会进行舍入处理而与此 Single 有相同的精确度。
如果一个 Currency 与一个 Single 或 Double 进行比较,则 Single 或 Double 转换成一个 Currency。与此相似,当一个 Decimal 要与一个 Single 或 Double 进行比较时,Single 或 Double 会转换成一个 Decimal。对于 Currency,任何小于 .0001 的小数将被舍弃,对于 Decimal,任何小于 1E-28 的小数将被舍弃,或者可能产生溢出错误。舍弃这样的小数部分会使原来不相等的两个数值经过比较后相等。
= 操作符
描述
用于对一个变量或属性赋值。
语法
variable = value
= 操作符语法有如下几部分:
部分 描述
variable 任何变量或任何可写的属性。
value 任何数值型或字符串文字、常数或表达式。
说明
等号左边的名字可以是一个简单的标量变量或一个数组的元素。等号左边的属性只能是运行时可写的属性。
\ 运算符
用来对两个数作除法并一个整数。
语法
result = number1\number2
\ 运算符的语法具有以
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论