vb6.0运算符大全_第1页
vb6.0运算符大全_第2页
vb6.0运算符大全_第3页
vb6.0运算符大全_第4页
vb6.0运算符大全_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Vb6.0运算符1、& 运算符用来强制两个表达式作字符串连接。语法result = expression1 & expression2& 运算符的语法具有以下几个部分:部分描述result必需的;任何 String或 Variant 变量。expression1必需的;任何表达式。expression2必需的;任何表达式。说明如果 expression 不是字符串,则将其转换成 String 变体。如果两个表达式都是字符串表达式,则 result 的数据类型是 String;否则 result 是 String 变体。如果两个表达式都是 Null,则 result 也是 Null。但是,只要有一个 expression 是 Null,那么在与其它表达式连接时,都将其作为长度为零的字符串 () 处理。任何 Empty 类型表达式也作为长度为零的字符串处理。& 运算符示例本示例使用 & 运算符将字符串串接起来。Dim MyStrMyStr = Hello & World 返回 Hello World。MyStr = Check & 123 & Check 返回 Check 123 Check。2、* 运算符用来将两数相乘。语法result = number1*number2* 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。number1必需的;任何数值表达式。number2必需的;任何数值表达式。说明result 的数据类型通常与最精确的表达式的数据类型相同。精确度由最低到最高的顺序是Byte、 Integer、Long、Single、Currency、Double 和 Decimal。下列情况是例外:如果则 result 为乘法运算有一个 Single 和一个Long,转换成 Double。result 的数据类型是 Long、Single 或 Date 变体,且超出正确范围,转换成有 Double 的 Variant。result 的数据类型是 Byte 变体,且超出正确范围,转换成 Integer 变体。result 的数据类型是 Integer 变体,且超出正确范围,转换成 Long 变体。如果有一个或两个表达式是 Null 表达式,则 result 为 Null。如果一个表达式是 Empty,则作为 0 处理。注意 乘法用到的精确度等级与加法和减法用到的精确度等级不一样。* 运算符示例本示例使用 * 运算符来计算两数的乘积。Dim MyValueMyValue = 2 * 2 返回 4。MyValue = 459.35 * 334.90 返回 153836.315。3、+ 运算符用来求两数之和。语法result = expression1+expression2+ 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。expression1必需的;任何表达式。expression2必需的;任何表达式。说明在使用 + 运算符时有可能无法确定是做加法还是做字符串连接。为避免混淆,请使用 & 运算符进行连接,并且改进程序代码的可读性。如果至少有一个表达式不是 Variant,则可运用以下法则:如果则两个表达式都是数值数据类型 (Byte、Boolean、 Integer、Long、Single、 Double、 Date、Currency 或是 Decimal)相加。两个表达式都是 String连接。一个表达式是数值数据类型而另一个是 Null 之外的任意 Variant。相加。一个表达式是 String 而其它是 Null 之外的任意 Variant。连接。一个表达式是 Empty Variant返回另一个不变的表达式作为 result。一个表达式是数值数据类型,而另一个是 String产生一个类型不匹配错误。每个表达式都是 Nullresult 是 Null。如果两个表达式都是 Variant 表达式,则可运用下列规则:如果则两个 Variant 表达式都是数值相加。两个 Variant 表达式都是字符串连接。一个 Variant 表达式是数值而另一个是字符串相加。对于只有数值数据类型表达式的单纯加法,result 的数据类型通常与其中最精确的表达式的数据类型相同。精确度由最低到最高的顺序是 Byte、Integer、Long、Single、Double、Currency 和 Decimal。但下列情况例外:如果则 result 为一个 Single 和一个 Long 相加,一个 Double。result 的数据类型是 Long、Single 或 Date 变体,且越出正确范围,转换成 Double 变体。result 的数据类型是 Byte 变体,且超过本身的正确范围时,转换成 Integer 变体。result 的数据类型是 Integer 变体,且超过本身的正确范围时,转换成 Long 变体。将一个 Date 加到任何数据类型上,一个 Date。如果有一个或两个表达式是 Null 表达式,则 result 为 Null。如果两个表达式都是 Empty,则 result 是 Integer。但是,如果只有一个表达式是 Empty,则另一个表达式原封不动地作为 result 返回。注意 加法和减法用到的精确度等级与乘法用到的精确度等级不一样。+ 运算符示例本示例使用 + 运算符来计算数值的和。+ 运算符也可以用来做字符串的串接操作。不过,最好还是使用 & 运算符来做字符串的串接操作。如果 + 运算符两边的表达式中混着字符串及数值的话,其结果会是数值的求和。如果都是字符串作“相加”,则返回串接起来的字符串。Dim MyNumber, Var1, Var2MyNumber = 2 + 2 返回 4。MyNumber = 4257.04 + 98112 返回 102369.04。Var1 = 34: Var2 = 6 初始化混合变量的值。MyNumber = Var1 + Var2 返回 40。Var1 = 34: Var2 = 6 用字符串初始化混合变量的值。MyNumber = Var1 + Var2 返回 346(字符串被串接起来)。4、 运算符用来求两数之差或表示数值表达式的负值。语法 1result = number1 - number2语法 2- number 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。number必需的;任何数值表达式。number1必需的;任何数值表达式。number2必需的;任何数值表达式。说明在语法 1 中, 运算符是求两数之差的算术减法运算符。在语法 2 中, 运算符为一元负运算符,说明表达式的值为负值。result 的数据类型通常与最精确的表达式的数据类型相同。精确度由最低到最高的顺序是Byte、Integer、Long、Single、Double、Currency 和 Decimal。下列情况例外:如果则 result 为当减法运算中有一个 Single 和一个 Long,转换成一个 Double。result 的数据类型是一个 Long、Single 或 Date 变体,且超出正确范围,转换成包含 Double 的Variant。result 的数据类型是一个 Byte 变体,且超出正确范围,转换成一个 Integer 变体。result 的数据类型是一个 Integer 变体,且超出正确范围,转换成一个 Long 变体。减法运算中有 Date 和其它任何数据类型,一个 Date。减法运算中有两个 Date 表达式,一个 Double。如果有一个或两个表达式是 Null 表达式,则 result 为 Null。如果一个表达式是 Empty,则作为 0 处理。注意 加法和减法用到的精确度等级与乘法用到的精确度等级不一样。- 运算符示例本示例使用 - 运算符来计算两数值的差。Dim MyResultMyResult = 4 - 2 返回 2。MyResult = 459.35 - 334.90 返回 124.45。5、/ 运算符用来进行两个数的除法运算并返回一个浮点数。语法result = number1/number2/ 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。number1必需的;任何数值表达式。number2必需的;任何数值表达式。说明result 的数据类型通常是 Double 或 Double 变体。下列情况是例外:如果则 result 为两个表达式都是 Byte、Integer 或Single表达式时,一个 Single,除非超出正确范围;如果发生这种情况,则产生错误。两个表达式都是 Byte、Integer 或Single 变体,一个 Single 变体,除非已超出正确范围;一旦发生这种情况,result 是一个包含 Double 的 Variant。除法运算中有一个 Decimal及其它任何数据类型,一个 Decimal 数据类型。如果有一个或是两个表达式是 Null 表达式,则 result 为 Null。如果一个表达式是 Empty 则作为 0 处理。/ 运算符示例本示例使用 / 运算符来计算浮点数除法。Dim MyValueMyValue = 10 / 4 返回 2.5。MyValue = 10 / 3 返回 3.333333。6、 运算符用来对两个数作除法并返回一个整数。语法result = number1number2 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。number1必需的;任何数值表达式。number2必需的;任何数值表达式。说明在进行除法运算之前,数值表达式通过舍去小数部分转换成 Byte、Integer 或 Long表达式。通常,无论 result 是不是整数,result 的数据类型都是 Byte、Byte 变体、Integer、Integer 变体、Long 或 Long 变体。任何小数部分都被删除。但是,如果任何一个表达式是 Null,则 result 为 Null。如果一个表达式是 Empty,则作为0 处理。 运算符示例本示例使用 运算符来计算整型除法。Dim MyValueMyValue = 11 4 返回 2。MyValue = 9 3 返回 3。 MyValue = 100 3 返回 33。7、运算符用来求一个数字的某次方,次方数为 exponent 值。语法result = numberexponent 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。number必需的;任何数值表达式。exponent必需的;任何数值表达式。说明只有当 exponent 为整数值时,number 才可以为负数。在表达式中执行多个指数运算时, 运算符的计算顺序从左到右。result 的数据类型通常是 Double 或包含 Double 的 Variant。但是,如果 number 或 exponent 中有一个是 Null 表达式,则 result 也是 Null。 运算符示例本示例使用 运算符来表示某数的乘方的指数值。Dim MyValueMyValue = 2 2 返回 4。MyValue = 3 3 3 返回 19683。MyValue = (-5) 3 返回 -125。8、= 操作符描述用于对一个变量或属性赋值。语法variable = value= 操作符语法有如下几部分:部分描述variable任何变量或任何可写的属性。value任何数值型或字符串文字、常数或表达式。说明等号左边的名字可以是一个简单的标量变量或一个数组的元素。等号左边的属性只能是运行时可写的属性。9、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 语句放置于回调过程的起始处来达到这个要求。AddressOf 运算符示例下面的示例创建一个带有一个列表框的窗体,该列表框包含您的系统中的字体的按字母顺序排序的列表。要运行该示例,请创建一个带有一个列表框的窗体。窗体部分的代码如下:Option ExplicitPrivate Sub Form_Load() Module1.FillListWithFonts List1End Sub把下面的代码放置到一个模块中。EnumFontFamilies 函数定义中的第三个参数是一个长整形,它代表一个过程。该参数必须包含这个过程的地址,而不是这个过程的返回值。在对 EnumFontFamilies 的调用中,第三个参数需要 AddressOf 运算符来返回 EnumFontFamProc 过程的地址,该过程是当调用 Windows API 函数,即 EnumFontFamilies 时提供的回调过程的名称。当把 AddressOf EnumFontFamProc 传递给 EnumFontFamilies 时, Windows 就会为系统中的每一个字体库调用一次 EnumFontFamProc。传递给 EnumFontFamilies 的最后一个参数指定用来显示信息的列表框。字体枚举类型Public Const LF_FACESIZE = 32Public Const LF_FULLFACESIZE = 64Type LOGFONT lfHeight As Long lfWidth As Long lfEscapement As Long lfOrientation As Long lfWeight As Long lfItalic As Byte lfUnderline As Byte lfStrikeOut As Byte lfCharSet As Byte lfOutPrecision As Byte lfClipPrecision As Byte lfQuality As Byte lfPitchAndFamily As Byte lfFaceName(LF_FACESIZE) As ByteEnd TypeType NEWTEXTMETRIC tmHeight As Long tmAscent As Long tmDescent As Long tmInternalLeading As Long tmExternalLeading As Long tmAveCharWidth As Long tmMaxCharWidth As Long tmWeight As Long tmOverhang As Long tmDigitizedAspectX As Long tmDigitizedAspectY As Long tmFirstChar As Byte tmLastChar As Byte tmDefaultChar As Byte tmBreakChar As Byte tmItalic As Byte tmUnderlined As Byte tmStruckOut As Byte tmPitchAndFamily As Byte tmCharSet As Byte ntmFlags As Long ntmSizeEM As Long ntmCellHeight As Long ntmAveWidth As LongEnd Type ntmFlags 段标志Public Const NTM_REGULAR = &H40&Public Const NTM_BOLD = &H20&Public Const NTM_ITALIC = &H1& tmPitchAndFamily 标志Public Const TMPF_FIXED_PITCH = &H1Public Const TMPF_VECTOR = &H2Public Const TMPF_DEVICE = &H8Public Const TMPF_TRUETYPE = &H4Public Const ELF_VERSION = 0Public Const ELF_CULTURE_LATIN = 0 EnumFonts 掩码Public Const RASTER_FONTTYPE = &H1Public Const DEVICE_FONTTYPE = &H2Public Const TRUETYPE_FONTTYPE = &H4Declare Function EnumFontFamilies Lib gdi32 Alias _ EnumFontFamiliesA _ (ByVal hDC As Long, ByVal lpszFamily As String, _ ByVal lpEnumFontFamProc As Long, LParam As Any) As LongDeclare Function GetDC Lib user32 (ByVal hWnd As Long) As LongDeclare Function ReleaseDC Lib user32 (ByVal hWnd As Long, _ ByVal hDC As Long) As LongFunction EnumFontFamProc(lpNLF As LOGFONT, lpNTM As NEWTEXTMETRIC, _ ByVal FontType As Long, LParam As ListBox) As LongDim FaceName As StringDim FullName As String FaceName = StrConv(lpNLF.lfFaceName, vbUnicode) LParam.AddItem Left$(FaceName, InStr(FaceName, vbNullChar) - 1) EnumFontFamProc = 1End FunctionSub FillListWithFonts(LB As ListBox)Dim hDC As Long LB.Clear hDC = GetDC(LB.hWnd) EnumFontFamilies hDC, vbNullString, AddressOf EnumFontFamProc, LB ReleaseDC LB.hWnd, hDCEnd Sub10、And 运算符用来对两个表达式进行逻辑连接。语法result = expression1 And expression2And 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。expression1必需的;任何表达式。expression2必需的;任何表达式。说明如果两个表达式的值都是 True,则 result 是 True。如果其中一个表达式的值是 False,则 result 是 False。下列表格说明如何确定 result:如果 expression1 为且 expression2 为则 result 为TrueTrueTrueTrueFalseFalseTrueNullNullFalseTrueFalseFalseFalseFalseFalseNullFalseNullTrueNullNullFalseFalseNullNullNullAnd 运算符还对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:如果在 expression1 的位为且在 expression2 中的位为result 为000010100111And 运算符示例本示例使用 And 运算符来做两个表达式结果的逻辑合取(a logical conjunction)。Dim A, B, C, D, MyCheckA = 10: B = 8: C = 6: D = Null 设置变量初值。MyCheck = A B And B C 返回 True。MyCheck = B A And B C 返回 False。MyCheck = A B And B D 返回 Null。MyCheck = A And B 返回 8(位比较的结果)。11、比较运算符用来比较表达式。语法result = expression1 comparisonoperator expression2result = object1 Is object2result = string Like pattern比较运算符具有以下几个部分:部分描述result必需的;任何数值变量。expression必需的;任何表达式。comparisonoperator必需的;任何比较运算符。object必需的;任何对象名称。string必需的;任何字符串表达式。pattern必需的;任何字符串表达式或字符的范围。说明下列表格中有一系列比较运算符以及判定 result 是 True、False 还是 Null 的条件:运算符True ifFalse ifNull if(小于)expression1 = expression2expression1 or expression2 = Null=(小于或等于)expression1 expression2expression1 or expression2 = Null(大于)expression1 expression2expression1 =(大于或等于)expression1 = expression2expression1 expression2expression1 or expression2 = Null=(等于)expression1 = expression2expression1 expression2expression1 or expression2 = Null(不等于)expression1 expression2expression1 = expression2expression1 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 的小数将被舍弃,或者可能产生溢出错误。舍弃这样的小数部分会使原来不相等的两个数值经过比较后相等。比较运算符示例本示例示范各种“比较运算符”的用法。这类运算符通常拿来做表达式结果的比较。Dim MyResult, Var1, Var2MyResult = (45 35) 返回 False。MyResult = (45 = 45) 返回 True。MyResult = (4 3) 返回 True。MyResult = (5 4) 返回 True。Var1 = 5: Var2 = 4 设置变量初值。MyResult = (Var1 Var2) 返回 True。Var1 = 5: Var2 = EmptyMyResult = (Var1 Var2) 返回 True。Var1 = 0: Var2 = EmptyMyResult = (Var1 = Var2) 返回 True。12、Eqv 运算符用来对两个表达式进行逻辑等价运算。语法result = expression1 Eqv expression2Eqv 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。expression1必需的;任何表达式。expression2必需的;任何表达式。说明如果有一个表达式是 Null,则 result 也是 Null。如果表达式都不是 Null,则根据下表来确定 result:如果 expression1 为且 expression2 为则 result 为TrueTrueTrueTrueFalseFalseFalseTrueFalseFalseFalseTrueEqv 运算符对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:如果在 expression1 的位为且在 expression2 中的位为result 为001010100111Eqv 运算符示例本示例使用 Eqv 运算符来做两个表达式结果的逻辑等价(logical equivalence)。Dim A, B, C, D, MyCheckA = 10: B = 8: C = 6: D = Null 设置变量初值。MyCheck = A B Eqv B C 返回 True。MyCheck = B A Eqv B C 返回 False。MyCheck = A B Eqv B D 返回 Null。MyCheck = A Eqv B 返回 -3(位比较的结果)。13、Imp 运算符用来对两个表达式进行逻辑蕴涵运算。语法result = expression1 Imp expression2Imp 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。expression1必需的;任何表达式。expression2必需的;任何表达式。说明下列表格说明如何确定 result:如果 expression1 为且 expression2 为则 result 为TrueTrueTrueTrueFalseFalseTrueNullNullFalseTrueTrueFalseFalseTrueFalseNullTrueNullTrueTrueNullFalseNullNullNullNullImp 运算符对两个数值表达式中位置相同的位进行逐位比较,并根据下表对 result 中相应的位进行设置:如果在 expression1 的位为且在 expression2 中的位为result 为001011100111Imp 运算符示例本示例使用 Imp 运算符来做两个表达式结果的逻辑隐含式(logical implication)。Dim A, B, C, D, MyCheckA = 10: B = 8: C = 6: D = Null 设置变量初值。MyCheck = A B Imp B C 返回 True。MyCheck = A B Imp C B 返回 False。MyCheck = B A Imp C B 返回 True。MyCheck = B A Imp C D 返回 True。MyCheck = C D Imp B A 返回 Null。MyCheck = B Imp A 返回 -1(位比较的结果)。14、Is 运算符用来比较两个对象的引用变量。语法result = object1 Is object2Is 运算符的语法具有以下几个部分:部分描述result必需的;任何数值变量。object1必需的;任何对象名称。object2必需的;任何对象名称。说明如果 object1 和 object2 两者引用相同的对象,则 result 为 True;否则,result 为 False。有很多方法使两个变量引用相同的对象。在以下示例中,A 和 B 已被设置成与 C 引用相同的对象:Set A = B在下例中,A 和 B 引用的对象与 C 相同:Set A = CSet B = CIs 运算符示例本示例使用 Is 运算符来比较两个对象引用。示例中的对象变量名只是作说明用途的一般性名称而已。Dim MyObject, YourObject, ThisObject, OtherObject, Tha

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论