VB中变量定义有什么限制么?比如说只能定义某种数据类型,其他的不能定义不要Ctrl+c Ctrl+v和百度百科

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/05 02:38:06
VB中变量定义有什么限制么?比如说只能定义某种数据类型,其他的不能定义不要Ctrl+c Ctrl+v和百度百科

VB中变量定义有什么限制么?比如说只能定义某种数据类型,其他的不能定义不要Ctrl+c Ctrl+v和百度百科
VB中变量定义有什么限制么?比如说只能定义某种数据类型,其他的不能定义
不要Ctrl+c Ctrl+v和百度百科

VB中变量定义有什么限制么?比如说只能定义某种数据类型,其他的不能定义不要Ctrl+c Ctrl+v和百度百科
声明变量
声明变量就是事先将变量通知程序.要用 Dim 语句声明变量,Dim 语句提供了变量名:
Dim variablename [As type]
在过程内部用 Dim 语句声明的变量,只有在该过程执行时才存在.过程一结束,该变量的值也就消失了.此外,过程中的变量值对过程来说是局部的— 也就是说,无法在一个过程中访问另一个过程中的变量.由于这些特点,在不同过程中就可使用相同的变量名,而不必担心有什么冲突和意想不到变故.
变量名:
必须以字母开头.
不能包含嵌入的句号或者嵌入的类型声明字符.
不得超过 255 个字符.
在同一个范围内必须是唯一的.范围就是可以引用变量的变化域— 一个过程、一个窗体等等.
由于 Dim 语句中的可选的 As type 子句,可以定义被声明变量的数据类型或对象类型.数据类型定义了变量所存储信息的类型.String、Integer 和 Currency 都是数据类型的例子.变量也可以包含来自 Visual Basic 或其它应用程序的对象.Object、Form1 和 TextBox 都是 Visual Basic 对象类型或类的实例.
详细信息 关于对象的更详细的信息,请参阅“用对象编程”和“用部件编程”.在本章后面的“数据类型”部分将详细讨论数据类型.
声明变量的其它方式:
不在过程内部,而在窗体、标准或类模块的声明段声明变量,这将使变量对模块中的所有过程有效.
用 Public 关键字声明变量,这将使变量在整个应用程序中有效.
用 Static 关键字声明一个局部变量,那么,即使过程结束,变量的值也仍然保留着.
隐式声明
在使用一个变量之前并不必先声明这个变量. 例如,可以书写这样一个函数,在其中就不必在使用变量 TempVal 之前先声明它:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TempVal)
End Function
Visual Basic 用这个名字自动创建一个变量,使用这个变量时,可以认为它就是显式声明的.虽然这种方法很方便,但是如果把变量名拼错了的话,会导致一个难以查找的错误.例如,假定写了这样一个函数:
Function SafeSqr (num)
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
乍看起来,这两段代码好象是一样的.但是因为在倒数第二行把 TempVal 变量名写错了,所以函数总是返回 0.当 Visual Basic 遇到新名字,它分辨不出这是意味着隐式声明了一个新变量呢,还是仅仅把一个现有变量名写错了,于是只好用这个名字再创建一个新变量.
显式声明
为了避免写错变量名引起的麻烦,可以规定,只要遇到一个未经明确声明就当成变量的名字,Visual Basic 都发出错误警告.
要显式声明变量,请
在类模块、窗体模块或标准模块的声明段中加入这个语句:
Option Explicit
—或—
在“工具”菜单中选取“选项”,单击“编辑器”选项卡,再复选“要求变量声明”选项.这样就在任何新模块中自动插入 Option Explicit 语句,但不会在已经建立起来的模块中自动插入;所以在工程内部,只能用手工方法向现有模块添加 Option Explicit.
如果对包含 SafeSqr 函数的窗体或标准模块执行该语句,那么 Visual Basic 将认定 TempVal 和 TemVal 都是未经声明变量,并为两者都发出错误信息.随后就可以显式声明 TempVal.
Function SafeSqr (num)
Dim TempVal
TempVal = Abs (num)
SafeSqr = Sqr (TemVal)
End Function
因为 Visual Basic 对拼错了的 TemVal 显示错误信息,所以能够立刻明白是什么问题.由于 Option Explicit 语句有助于抓住这些类型的错误,所以最好在所有代码中使用它.
注意 Option Explicit 语句的作用范围仅限于语句所在模块,所以,对每个需要 Visual Basic 强制显式变量声明的窗体模块、标准模块及类模块,必须将 Option Explicit 语句放在这些模块的声明段中.如果选择“要求变量声明”,Visual Basic 会在后续的窗体模块、标准模块及类模块中自动插入 Option Explicit,但是不会将它加入到现有代码中.必须在工程中通过手工将 Option Explicit 语句加到任何现有模块中.
声明带数据类型的变量
在使用非 Variant 变量之前,必须使用 Private、Public、Dim 或 Static 语句将变量声明为 As type.例如,下列语句分别声明了 Integer、Double、String 和 Currency 类型的变量:
Private I As Integer
Dim Amt As Double
Static YourName As String
Public BillsPaid As Currency
一个声明语句可将多个声明组合起来,请看下列语句:
Private I As Integer,Amt As Double
Private YourName As String,BillsPaid As Currency
Private Test,Amount,J As Integer
注意 如果不提供数据类型,则指定变量为缺省类型.在上例中,变量 Test 和 Amount 是 Variant 数据类型.如果由于其它编程语言的经验使人感到同一个声明语句中的所有变量都有相同的指定数据类型(此例中为 Integer),那么,此处的结果可能会令人感到新鲜.
Numeric 数据类型
Visual Basic 支持几种 Numeric 数据类型— Integer(整型)、Long(长整型)、Single(单精度浮点型)、Double(双精度浮点型)和 Currency(货币型).与 Variant 类型相比,Numeric 类型占用的存储空间通常要少.
如果知道变量总是存放整数(如 12 )而不是带小数点的数字(如 3.57),就应当将它声明为 Integer 类型或 Long 类型.整数的运算速度较快,而且比其它数据类型占据的内存要少.在 For...Next 循环内作为计数器变量使用时,整数类型尤为有用.
详细信息 关于控制结构的详细资料,请参阅本章后面的“控制结构概述”.
如果变量包含小数,则可将它们声明为 Single、Double 或 Currency 变量.Currency 数据类型支持小数点右面 4 位和小数点左面 15 位;它是一个精确的定点数据类型,适用于货币计算.浮点(Single 和 Double)数比 Currency 的有效范围大得多,但有可能产生小的进位误差.
注意 浮点数值可表示为 mmmEeee 或 mmmDeee ,其中 mmm 是假数,而 eee 是指数(以 10 为底的幂).Single 数据类型的最大正数值为 3.402823E+38,或 3.4 乘以 10 的 38 次方;Double 数据类型的最大正数值是 1.79769313486232D+308 或 1.8 乘以 10 的 308 次方.用 D 将数值文字中的假数部分和指数部分隔开,就会导致将该值作为 Double 数据类型来处理.同样,用这种方式使用 E,也会导致将该值作为 Single 数据类型来处理.
Byte 数据类型
如果变量包含二进制数,则将它声明为 Byte 数据类型的数组.(本章后面的“数组”中将讨论数组).在转换格式期间用 Byte 变量存储二进制数据就可保留数据.当 String 变量在 ANSI 和 Unicode 格式间进行转换时,变量中的任何二进制数据都会遭到破坏.在下列任何一种情况下,Visual Basic 都会自动在 ANSI 和 Unicode 之间进行转换:
读文件时
写文件时
调用 DLL 时
调用对象的方法和属性时
除一元减法外,所有可对整数进行操作的运算符均可操作 Byte 数据类型.因为 Byte 是从 0 - 255 的无符号类型,所以不能表示负数.因此,在进行一元减法运算时,Visual Basic 首先将 Byte 转换为符号整数.
所有数值变量都可相互赋值,也可对 Variant 类型变量赋值. 在将浮点数赋予整数之前, Visual Basic要将浮点数的小数部分四舍五入,而不是将小数部分去掉.
详细信息 关于 Unicode 和 ANSI 转换的详细信息,请参阅“国际化”.
String 数据类型
如果变量总是包含字符串而从不包含数值,就可将其声明为 String 类型.
Private S As String
然后可将字符串赋予这个变量,并用字符串函数对它进行操作.
S = "Database"
S = Left (S,4)
按照缺省规定,String 变量或参数是一个可变长度的字符串,随着对字符串赋予新数据,它的长度可增可减. 也可以声明字符串具有固定长度.可用以下语法声明一个定长字符串:
String * size
例如,为了声明一个长度为 50 字符的字符串,可用下列语句:
Dim EmpName As String * 50
如果赋予字符串的字符少于 50 个,则用空格将 EmpName 的不足部分填满.如果赋予字符串的长度太长,已不能成为定长字符串,则 Visual Basic 会直接截去超出部分的字符.
因为定长字符串用空格填充尾部多余的空间,所以在处理定长字符串时可发现,删除空格的 Trim 和 RTrim 函数是很有用的.
可将标准模块中的定长字符串声明为 Public 或 Private.在窗体和类模块中,必须将定长字符串声明为 Private.
详细信息 请参阅语言参考中的“Ltrim、RTrim Function 和 Trim 函数”.
交换字符串和数字
如果字符串表示数值,则可将字符串赋予数值变量.也可将数值赋予字符串变量.例如,将命令按钮、文本框和列表框放置在窗体中.在命令按钮的 Click 事件中输入下列代码.运行应用程序并单击命令按钮.
Private Sub Command1_Click ()
Dim intX As Integer
Dim strY As String
strY = "100.23"
intX = strY '将字符串传递给数值变量.
List1.AddItem Cos (strY) '将字符串中数值的余弦值.
'添加到列表框中.
strY = Cos (strY) '将余弦值传递给字符串变量.
Text1.Text = strY '在文本框中显示字符串.
End Sub
Visual Basic 会自动强制变量为适当的数据类型.在转换字符串和数值时要小心;如果传送字符串中的值不是数值,则在运行时会出错.
Boolean 数据类型
若变量的值只是“true/false”、“yes/no”、“on/off”信息,则可将它声明为 Boolean 类型.Boolean 的缺省值为 False.在下面的例子中,blnRunning 是 Boolean 变量,存储简单的 yes/no 设置.
Dim blnRunning As Boolean
'查看磁带是否在转.
If Recorder.Direction = 1 Then
blnRunning = True
End if
Date 数据类型
Date 和 Time 值既可包含在特定的 Date 数据类型中,又可包含在 Variant 变量中.一般的 Date 特性适用于这两种类型.
详细信息 请参阅《联机手册》的“高级变量主题”中的“在 Variant 变量中存储 Date/Time 值”部分.
当其它数值数据类型转换为 Date 时,小数点左边的值表示 Date 信息,小数点右边的值则代表 Time.午夜为 0,正午为 0.5.负数表示公元 1899 年 12 月 31 日之前的 Date.
Object 数据类型
Object 变量作为 32 位(4 个字节)地址来存储,该地址可引用应用程序中或某些其它应用程序中的对象.可以随后(用 Set 语句)指定一个被声明为 Object 的变量去引用应用程序所识别的任何实际对象.
Dim objDb As Object
Set objDb = OpenDatabase ("c:\Vb5\Biblio.mdb")
在声明对象变量时,请试用特定的类,而不用一般的 Object(例如用 TextBox 而不用 Control,或者象上面的例子那样,用 Database 取代 Object).运行应用程序之前,Visual Basic 可以决定引用特定类型对象的属性和方法.因此,应用程序在运行时速度会更快.在“对象浏览器”中列举了特定的类.
当使用其它应用程序的对象,并在“对象浏览器”中的“类”列表中列举对象时,不要用 Variant 或一般的 Object,而应声明对象.这样可确保 Visual Basic 能够识别引用的特定类型对象,在运行时解决引用问题.
详细信息 关于创建和指定对象以及对象变量的更详细信息,请参阅本章后面的“创建对象”部分.
转换数据类型
Visual Basic 提供了几种转换函数,可用来将值转换成特定数据类型.例如,用 CCur 函数将值转换成 Currency 类型:
PayPerWeek = CCur (hours * hourlyPay)
转换函数 将表达式转换成
Cbool Boolean
Cbyte Byte
Ccur Currency
Cdate Date
CDbl Double
Cint Integer
CLng Long
CSng Single
CStr String
Cvar Variant
CVErr Error
注意 对目标数据类型,传递到转换函数的值必须是有效的,否则会发生错误.例如,如果想把 Long 型数转换成 Integer 型数,那么,Long 型数必须在 Integer 数据类型的有效范围之内.
详细信息 在联机帮助中查找指定的转换函数.
Variant 数据类型
Variant 变量能够存储所有系统定义类型的数据.如果把它们赋予 Variant 变量,则不必在这些数据的类型间进行转换; Visual Basic 会自动完成任何必要的转换.例如:
Dim SomeValue '缺省为 Variant.
SomeValue = "17" 'SomeValue包含 "17"(双字符的串).
SomeValue = SomeValue - 15 '现在, SomeValue 包含数值 2.
SomeValue = "U" & SomeValue '现在, SomeValue 包含 "U2" (双字符的串).
不必过多关注 Variant 变量中数据的类型就可对 Variant 变量进行操作,但须避免落入陷阱.
如果对 Variant 变量进行数学运算或函数运算,则 Variant 必包含某个数.更详细的信息,请参阅《联机手册》中“高级变量主题”中的“变量中存储的 Numeric 值”部分.
如果正在连接两个字符串,则用 " & " 操作符而不用 " + " 操作符.更详细的信息,请参阅《联机手册》中“高级变量主题”中的“Variant 变量中存储的 Strings”部分.

VB中变量定义有什么限制么?比如说只能定义某种数据类型,其他的不能定义不要Ctrl+c Ctrl+v和百度百科 Vb中,静态变量只能在定义它的过程中使用,这句话对吗? VB 定义无符号变量如何在VB中 定义无符号变量? VB中什么时候用常量,什么时候用变量?定义常量时是不是必须有const? 在VB中Text1为变量定义是什么意思 VB变量有几种,如何定义,起什么作用? Static 和 Dim 有什么区别VB中的用Static 定义的变量和用 Dim 定义的变量有什么区别? 在VB中,符号常量和变量有什么区别?什么情况下医用符号常量?什么情况下医用变量?注意是在 VB 飞机的折扣舱B和经济舱Y有什么差别么比如说只能被限制在一些不是很好的座位啦之类的 C语言中,说明一个变量和定义一个变量有什么区别? C语言中,说明一个变量和定义一个变量有什么区别? 简述VB常量及变量的定义 VB 中定义a#, 局部变量是否只能在某个函数中定义并且只能在该函数中使用 VB中这个定义是什么意思?有什么用?最好能举个例子 在三级网络技术中data temp,int temp ,pro temp都是定义变量,有什么不同么? VB 中定义变量时,string,integer,long,single和double这些常用的数据类型具体在什么情况下定义?VB 中定义变量时,string,integer,long,single和double这些常用的数据类型分别具体在什么情况下定义?我指的是 VB定义小数位数最多能定义几位?好像double只能定义十四位啊,有没有更多的?