在VB中可变类型变量的使用

来源 :电脑知识与技术·学术交流 | 被引量 : 0次 | 上传用户:kevin7878
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在VB中变量的数据类型有很多种类,如字符型串型、数值型、日期型、布尔型等。还有一种特殊类型:可变类型(Variant)。定义了一个可变类型变量后,该变量可以存放任何类型的数据(数值、字符、日期等),这样在给变量赋值时就不用对数据进行转换了,VB系统会根据赋給变量的值的不同自动进行数据类型的转换。
  关键词:变量;数据类型;可变类型;程序设计
  中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)26-1720-02
  Variant Variables Use In Visual Basic
  WANG Jin-feng
  (Wuhan Engineering Institute, Wuhan 430415, China)
  Abstact: Variables data type in Visual Basic is of many types such as string,numeric,date,boolen etc. And among them is Variant, a special type. A variables which is defined by the variant can be stored with any type of data (numeric,string, date and so on).Therefore,it is not necessary for usto make any conversion between data types, because Visual Basic can do so automatically according to the value of defined variables.
  Key words: variables; data type; variant; programming
  
  1 VB中的变量
  
  在Visual Basic中可以用名字表示内存单元,这样就能访问内存中的数据。一个有名称的内存单元称为变量。程序在运行过程中可以用变量临时存储数据,变量的值可以发生变化。每个变量都有名字和数据类型,通过名字引用一个变量,而通过数据类型来确定该变量的存储方式。
  在使用变量之前,一般须声明变量名和类型。在Visual Basic中,可以显式或隐式地声明变量及其类型。
  1.1 显式声明:在变量使用之前对变量进行声明。
  格式:Dim|Private|Static|Public <变量名>[As<类型>]
  例如下列语句分别声明了Integer、Double、String、Currency类型的变量:
  Dim x As Integer
  Private y As Double
  Static m As String
  Public n As Currency
  1.2 隐式声明:在Visual
  Basic中,变量可以不经声明而直接使用,即为隐式声明。
  在隐式声明中,如果把变量名拼错了的话,会导致一个难以查找的错误。
  为了避免写错变量名引起的麻烦,用户可以规定,只要遇到一个未经明确声明就当成变量的名字,Visual Basic 都发出错误警告。这就是强制显式声明变量。
  要强制显式声明变量,只须在类模块、窗体模块或标准模块的声明段中加入这条语句:
  Option Explicit
  在添加Option Explicit语句后,Visual Basic 将自动检查程序中是否有未定义的变量,发现后将显示错误信息。
  
  2 可变类型变量(Variant)
  
  在显式声明中,使用类型关键字Variant定义类型(声明格式中变量明后带As Variant;或仅定义变量而不作类型声明(即在声明语句中不带AS<类型>),或者未经声明而直接使用的变量(隐式声明),这种变量称为可变类型变量(Variant)。这样,变量的类型,即对数据的存储形式,将随着存放的数据类型VB自动完成各种数据类型必要的转换。在Variant变量中可以存放任何类型的数据,包括数值、字串、日期和时间。
  例如,
  Dim sa As Variant或
  Dim sa都可以把sa定义为可变类型变量。
  例如:
  sa = “100” ’ 存入字符串 “100”
  sa = sa – 10’ sa的值变为数值90
  sa = “JD” Str(sa)’ sa的值变为字符串“JD90”
  sa =sa 100 ’出错,类型不匹配
  可以看出,随着所赋的值不同,变量的类型在不断变化,这就是“可变数据类型”的含义。
  Variant是一种特殊的数据类型,除了定长String数据及用户定义类型外,可以包含任何种类的数据。
  当Variant类型的变量包含数值数据时,可以是任何整型或实型数,负数时范围从-1.798E308到-4.941E-324,正数时则从4.941E-324到1.798E308。通常,Variant变量会保持原来的数据类型。例如,如果把一个Integer类型的值赋值给Variant类型的变量,则接下来的运算会把此Variant当成Integer来处理。但是,如果算术运算针对包含Byte、Integer、Long或Single的Variant变量执行,而且结果 超过原来 数据类型 正常范围时,则在Variant变量中的结果会提升到数值范围较大的数据类型。如Byte则提升到Integer,Integer提升到Long,而Long 和Single则提升为Double。当Variant变量中的Currency、Decimal及Double类型的值超过它们各自的范围时,就会发生错误。
  在程序代码中,可以用Variant数据类型来替换任何数据类型,这样会更有适应性。如果Variant变量的内容是数字,它可以用字符串来表示数字或者用它实际的值来表示,这将由上下文来决定。
  例如:
  Dim MyVal As Variant
  MyVal = 2856
  在此例中,MyVal内有一实际值为2856的数值型数据。可以进行算术运算,如果用 运算符来将MyVal与其他含有数字的Variant或数值类型的变量相加,结果便是算术和。
  可利用VarType ()函数TypeName ()函数来测试Variant变量的数据类型。
  
  3 Variant变量的特定值
  
  除了可以像其它标准数据类型一样操作外,Variants 还包含三种特定值:Empty,Null 和 Error。
  3.1 Empty值
  有时需要知道是否已将一个值赋予所创建的变量。在赋值之前,Variant变量具有值Empty。值Empty是异于0、零长度字符串("")或Null值的特定值。可用IsEmpty函数测试Empty值:
  If IsEmpty (Z) Then Z = 0
  当Variant变量包含Empty值时,可在表达式中使用它;将其作为 0 或零长度字符串来处理,这要根据表达式来定。
  只要将任何值(包括0、零长度字符串或 Null)赋予 Variant 变量,Empty 值就会消失。而将关键字Empty赋予 Variant 变量,就可将 Variant 变量恢复为 Empty。
  3.2 Null 值
  Variant 数据类型还可包含一特定值:Null。Null通常用于数据库应用程序,表示未知数据或丢失的数據。 由于在数据库中使用 Null 方法,Null 具有某些唯一的特性:
  1)对包含 Null 的表达式,计算结果总是Null。于是说Null 通过表达式“传播”;如果表达式的部分之值为Null,那么整个表达式的值也为 Null。
  2)将 Null 值、含 Null 的 Variant 变量或计算结果为 Null 的表达式作为参数传递给大多数函数,将会使函数返回Null。Null值经由返回 Variant 数据类型的内在函数传播。也可用Null关键字指定Null值。例如:Z = Null
  也可用IsNull函数测试Variant变量是否包含 Null 值。
  If IsNull (X) And IsNull (Y) Then
  Z = Null
  Else
  Z = 0
  End If
  如果将Null值赋予Variant以外的任何其它类型变量,则将出现可以捕获的错误。而将Null值赋予 Variant则不会发生错误,Null将通过包含Variant变量的表达式传播(尽管 Null 并不通过某些函数来传播)。可以从任何具有Variant返回值的函数过程返回Null。
  除非明确将Null赋予变量,否则变量不会设置成Null值,所以,如果不在应用程序中使用Null,就不必书写测试Null和处理Null的程序。
  不应将Empty与Null弄混。Null 是表示Variant变量确实含有一个无效数据。
  3.3 Error值
  在Variant数据类型中,Error是用来指示在过程中出现错误时的特殊值。然而,不像对其他种类的错误那样,程序并不产生普通的应用程序级的错误处理。这可以让程序员,或应用程序本身,根据此错误值采另外的行动。可以用CVE函数将实数转换为错误值来产生Error值。
  
  4 使用Variant变量时应注意的的问题
  
  Variant变量的使用十分灵活,因为对它赋值不需要考虑类型转换的问题。但是,这种灵活性也带来一定隐患。使用时应注意以下几点:
  1)如果对Variant变量进行算术运算,必须确保变量中存放的是某种形式的数值,包括整数、浮点数、定点数或可以解释为数值的字符串。如果Variant变量中的内容是“JD90”,则不能对其进行算术运算,因为“JD90”不是有效的数值型形式。同理,可以对字符串“ 10”或“–2E3”进行算术运算,但不能对“123EX”进行算术运算。
  2)在对存放字符串的Variant变量进行操作时可能产生歧义。运算符“ ”既可以作数值相加,又可以用于字符串连接。当两个Variant变量之间使用“ ”运算时,其结果可能出乎意料,具体结果取决于两个变量中的内容。如果两个变量都是数值,则执行算术加运算;如果两个变量中存放的都是字符串,则执行字符串连接操作;如果一个变量中是数值而另一个变量中是字符串,则情况就复杂了,Visual Basic先试着将字符串转换为数值,如果转换成功则进行算术加运算,不成功则把另一个数值转换成字符串,然后对两个字符串进行连接操作,形成一个新的字符串。为了避免这种情况,执行字符串连接时,尽量使用运算符“
其他文献
摘要:随着自动气象站在气象业务中越来越广泛的应用,接收其数据的中心站软件的使用也越来越多,在业务使用过程中对中心站软件的功能要求的也逐渐增高。但在业务运行过程中,很多功能并没有在其用户使用手册中加以介绍,所以就需要对中心站软件进行更为深入的研究与实验以便可以使其适用气象业务的需要。根据对中国华云技术开发公司的中心站软件CawsAnyWhereServer2010的研究与实验,得到了一些适应气象业务
英语教学应该如何展开才能更高效,才能使教学对象真正地掌握地道的英语,提高听说读写的能力,是近年来备受教育者、教育对象所关注的问题。长期以来,我国的英语教学活动似乎都更为关注单词的记忆、语法的习得,却没有真正从英语文化的层面,从文学的视角来更深入地理解英语,获取更专业化的语言学习方式。而从文学视角来探讨英语教学模式的改革与教学水平的提升,是站在崭新视角上而产生的新思考,也赋予了传统英语教学以文学色彩
《语文教育新论》一书是由北京师范大学任翔教授组织语文教育界资深专家编写的关于语文教育研究的理论专著,于2016年由北京出版社出版。  本书对语文教育进行了系统全面、深入浅出的探究,对语文教学的各个层面的理念和方法作了全新的阐述,为语文教育理论层面的研究提供了独特的视角和有益的指导。总体而言,本书具有以下三个方面的特点。  首先,内容丰富,视野宏阔。《语文教育新论》以宏观的视野对新时代国内外的教育发
(深圳职业技术学院 电子与信息工程学院,广东 深圳 518055)   摘要:通过网络获取教学视音频信息进行自主学习将成为人们的主要学习方式,提出采用ASP与SQL Server设计开发一种实用的视音频学习系统的思路,并介绍了系统的主要功能及开发过程中的一些经验技巧。该系统有助人们学习模式的改变及学习效率的提高。  关键词:视音频;学习系统;ASP;SQL Server  中图分类号:TP311文
摘要:文章讨论了IIS Asp+Access模式的安全缺陷,从Web服务器的安全漏洞、Asp网站程序及Access数据库存在的安全隐患方面加以分析并给出预防对策。  关键词:网络安全;IIS;ASP;Access数据库  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008)19-30049-02  The Research of Site Security Based on
汉语流行语研究始于二十世纪八十年代。近年来,学者们专注于汉语流行语研究,取得了很多研究成果。其中,经济、文化等社会发展因素对汉语流行语的影响很大。但是,语言发展有其自身的规律,词汇的逻辑理据和语义理据对汉语流行语的传播起着不可轻视的作用。  一、汉语流行语的定义与分类  对于汉语流行语,学界尚没有统一的概念定义。综合现有观点,汉语流行语是指在一定时期内被社会大众广为流传和使用,并具有高频性、新奇性
书名:走向语文素养的阅读教学  作者:梁增红  出版社:华东师范大学出版社  出版时间:2021年  ISBN:9787576012736  定价:49.8元  阅读教学一直是语文教学中的重点。通过阅读教学培养学生的语文核心素养是当前语文教学的难点,对阅读教学的理论创新和实践探索也是当下语文教育教学研究的热点。华东师范大学出版社出版的《走向语文素养的阅读教学》,是语文特级教师梁增紅基于多年的一线教
摘要:嵌入式系统的Internet网络化的研究与应用是近几年来嵌入式应用领域的一个研究热点。该文针对应用广泛的ARM7系列的处理器为核心的嵌入式系统,对网络层协议进行了研究分析,提出了基于嵌入式封装、分用、重组方案、附属协议ICMP的回显应答功能等方案,使之适应嵌入式系统。  关键词:嵌入式系统;网络层协议;ICMP协议  中图分类号:TP393文献标识码:A文章编号:1009-3044(2008
摘要:该文介绍了RFID技术在载货车辆称重系统中的应用,并对RFID在这个系统中数据安全问题进行详尽的分析同时给出了认为比较合理的安全策略。  关键词:RFID;安全;假名标签;Key值更新随机Hash锁  中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)34-1755-03  Weight Automation Management System Combining
摘要:Sobel算子是图像边缘检测中常用的方法之一,利用像素的左、右、上、下邻域的灰度加权算法,根据在边缘点处达到极值这一原理进行边缘检测。该方法不但产生较好的检测效果,而且对噪声具有平滑作用,可以提供较为精确的边缘方向信息。本文提供了利用Sobel算子实现灰度图像边缘检测的C 源程序。  关键词:边缘检测;Sobel算子;梯度;噪声  中图分类号:TP183文献标识码:A文章编号:1009-3