没有合适的资源?快使用搜索试试~ 我知道了~
VB.NET 2005 数据语法基础
4星 · 超过85%的资源 需积分: 3 60 下载量 165 浏览量
2008-05-08
21:27:45
上传
评论 1
收藏 360KB DOC 举报
温馨提示
试读
35页
这是一个Word文档个人学习VB.NET过程中所作的笔记.希望对初学者有所帮助.以后会相继发部与VB.NET的学习笔记.
资源推荐
资源详情
资源评论
一、数据类型
<一> Integer 整型
类型 内 在 分 配 ( 字
节)
数值范围
( 无 符
号)
( 无 符
号)
( 无 符
号)
<二> 浮点数
浮点数也称实型数或实数,是带有小数部分的数值。它由三部分组成:符号、指数及尾数。单精度浮点数和双精
度浮点数的指数分别用“(或“)和“(或“)来表示。
(1)Single 单精度浮点型
这个类型用于存储单精度浮点型数字,占用 个字节,负数取值范围在;正
数取值范围在 之间。
(2)Double 双精度浮点型
一般浮点数字都存储为 ! 双精度浮点型,可以保证很高的精度,是最常用的浮点型数字类型,占用 个字节,
范围在 之间。
(3)Decimal 十进制
"# 支持 $%&(贷币)数据类型,$%& 变量以整数格式存储 位数字,以 为标度,将数字
表示为定点数,其小数左边为 位,右边为 位。"# 的 $%& 数据类型的精度不够,无法避免四舍五入的
误 差 , 因 些 在 "#'( 引 入 了 %)*+! 这 种 数 据 类 型 。 "#'( 中 将 $%& 数 据 类 型 转 换 为
%)*+!、%)*+! 变量存储带有符号(正负号)的 位整数。
<三> 字节 / 字符 / 字符串型
(1)Byte 字节型
这个类型的数据是从 的无符号整数,用来声明二进制的变量,但显示的值为十进制的。如果要声明的变量
包含二进制数据,通常将其声明为 #& 型的数。例如经常用到的颜色三组合红黄蓝即 ,-# 三颜色分量。
(2)Char 字符型
1
这是 "#'( 中的单字符数据类型,默认为字符是 )% 字符,占用 个字节。常常用来声明单字符的变量。
如下:
)*%+./0/$+
$+./102声明一个 $+ 类型的变量 %+./,并且赋给了一个值 0,字符用双引号包括
(3)String 字符串型
使用下列语句来声明一个字符串变量:
)*/30/)
可以在上述语句的最后面加上4,再加上一个正整数来指定这个字符串变量的长度。如下:
)*/30/)4
如果赋予字符串的长度超过了字符串的定长,那么 ")/+!#+/)%'( 会自动截去超出的长度。
<四> 其它数据类型
(1)Boolean 布尔型
布尔型数据表示“真(()”或“假( 5+!/)”这样的一种二值状态,简单的就是计算机中的 和 ,当没有为该
类型变量赋值时,初始值为 5!+/ 或 。"#'( 的布尔值实际上有 个,6 都是 (,而 为 5!+/ 的值。
一般情况应尽量使用 ( 或 5!+/ 直接赋值或参与运算而不用6 或 代替。
这种变量只占 个字节。
(2)Data 日期型
"#'( 中用 + 型变量来保存日期信息。++ 在内部存储为 位整数(注意这里的位指整数的位数而不是字
节的位数)。如下:
)* ++0/++
++1'789:2初始化 ++ 变量,得到当前日期。
(3)Object 对象数据类型
"#'( 用 7 ;% 数据类型代替了 "# 的 "+)+ 变体数据类型。7 ;% 变量用作指向对象的指针。
7 ;% 对象数据类型有几个特殊值。
1、Error 值:指出已发生的过程中的错误状态。
2、DBNull 值:空值,通常用于数据库应用程序,表示未知数据或丢失的数据。可以用 #'!! 函数测试 7 ;%
对象数据类型变量是否包含 #'!! 值。如下:
<#'!!93:+'!!9&:
1#'!!
(
1
)<
3、Nothing 值:有时需要知道是否已将一个值赋予所创建的变量。在赋值之前, 7 ;% 对象类型变量具有值
')(也是空值,但表示什么都没有)。值 ') 是不同于 ,零长度字符(“”)或 #'!! 值的特定值。当
式中使用它,将其作为 或零长度字符串来处理,这要根据表达式来定。只要将任何值包括 ,零长度字符串或
#'!!()赋予 7 ;% 对象类型变量,') 值就会消失。而将关键字 ') 赋予 7 ;% 对象类型变量,就
可将 ;% 对象类型变量恢复为 ')。
(4)枚举类型
在程序设计中,有些数据无法直接用整型数或浮点型数来表示,必须经过某种转换,把本来不是简单地用整数来
表示的问题硬用几个整数去描述,因而降低了程序的可读性。为此,")/+!#+/)%'( 提供了枚举数据类型。当一
个变量只有向种可能的值时,可以定义为枚举类型。所谓“枚举”,是指将变量的值一一列举出来,变量的值只限于列
举出来的值的范围内。
2
声明格式如下:
[Public | Private] Enum name [As Type]
membname1 [ = initexpr1 ]
membname2 [ = initexpr2 ]
…
membnamen [ = initexprn ]
End Enum
参数说明如下:
、= !)%:可选。表示所定义的 * 类型在整个项目中都是可见的,在默认情况下,* 类型被定义为
= !)%。
、=)>+:可选。表示所定义的 * 类型只在声明的模块中是可见的。
、*:声明该枚举类型的关键字。
、+*:所定义的 * 类型的名称,必须合乎 "#'( 的命名规则,在定义 * 类型的变量或参数时用
该名称来指定类型。
、&?:可选。用来声明枚举及其所有成员的数据类型,可以是 #&、 等。如果不指定 &?,则默
认为 。
、** +*:枚举成员的名称。
、))3?:可选。为创建枚举成员时计算和分配给该成员的表达式,该表达式可以包含文本、已定义的常数 ,
另一枚举成员或文本、常数和枚举成员的任何组合,但不能在这个表达式里使用变量或函数,只能适当使用一些强制
类型转换函数。
下面给出一些声明枚举变量的实例:
、在 * 语句的格式中“))3?可以省略。在默认情况下,枚举中的第一个常数被初始化为 ,其后的常
数则初始化为比其前面的常数大 的数值。如:
= !)%*+&/
*+&
@+&
(/+&
8/+&
(/+&
5)+&
++&
*
定义了一个枚举类型 +&/,它包括 个成员,都略了“))3?,因此常数 +& 的值为 ,常数 @+&
的值为 ,常数 (/+& 的值为 ,等等。
、可以用赋值的语句显式地给枚举中的常数赋值,即不省略“))3?。所赋值可以是任何长整数,包括负数。
如果希望用于小于 的常数代表出错条件,则可以给枚举常数赋一个负值。如:
= !)%*8A/&/
++&
+&1
@+&
(/+&
5)+&
>+!)1
*
在上面的枚举中,常数 >+!) 显式地赋值,而常数 +& 被赋值 。因为 ++& 是枚举中的第一个元
素,所以也被赋值 。@+& 的数值为 (比 +& 的数值大 ), (/+& 的数值为 等等。
、")/+!#+/)%'( 将枚举中的常数数值看作整数。如果将一个浮点数值赋给一个枚举中的常数, ")/+!
#+/)%'( 会将该数值取整为最接近的整数。
3
、当对一个枚举中的常数赋值时,可以使用另一个枚举中的数值。
= !)%*8A+&/
+&1
@+&
(/+&
8/+&
(/+&
5)+&
++&1+&/+&
>+!)1
*
这里的 +&/ 枚举的声明与前面的声明等同。
注意:* 语句只能在模块、命名空间或文件级出现。这就是说可以在源文件中或者在模块、类或结构内部声明
枚举,但不能在过程内部进行声明。在定义 * 类型之后,就可以将其用于声明变量类型,过程参数和 5%)
返回值。
二、 复合数据类型
迄今为止,我们使用的都是属于基本数据类型或简单数据类型(字符串、整型、实型等)的数据,可以通过简单变
量名来访问它们的元素。除基本数据类型外,")/+!#+/)%'( 还提供了复合数据类型,包含数组、结构和集合。
复合数据类型是按照一定规则组成的元素类型的数据,元素类型又称基类型,它可以是简单数据类型,也可以是复合
数据类型。对于复合数据类型来说,不能用一个简单变量名来访问它的某个元素。
<一> 数组
在实际应用中B常常需要处理同一类型的成批数据。例如,为了处理 个学生某门课程的考试成绩,可以用
、、CC 来分别代表每个学生的分数,其中 代表第一个学生的分数, 代表第二个学生的分数…
…。这里的 、C、 是带有下标的变量,通常称为下标变量。显然,用一批具有相同名字、不同下标的变
量来表示同一属性的一组数据,能更清楚地表示它们之间的关系。在 ")/+!#+/)%'( 中,把一组具有同一名字、
不同下标的下标变量称为数组。如:9:。
其中 称为数组名, 是下标,上标为 。
一个数组,如果只用一个下标就能确定一个数组元素在数组中的位置,则称为一维数组。而由两个或多个下标变量
所组成的数组称为二维数组或多维数组。
1、静态数组
在 ")/+!#+/)%'( 里,数组下界总是从 开始,不能改变,并且它们基于数组中的元素的数量被定义。如:
)*)*&++&9:0/
该元素从 )*&++&9:开始,直到 )*&++&9:结果,共 个元素。
2、动态数组
数组到底应该有多大才合适,有时可能不得而知,所以希望能够在运行时具有改变数组维数大小的能力。
")/+!#+/)%'( 中,固定大小数组通过 )* 语句声明,在些语句中必须指出数组的维数及大小。动态数组也是
先在 )* 语句中声明,但不指定大小,只需要声明其类型,即数组名后的()内为空,最多只有“,”分隔开每个维。
声明定义之后的数组还不能直接赋值。在使用动态数组之前,再通过 ,)* 语句重新确定动态数组上界大小,,*
之后才可以赋值或参与运算。
")/+!#+/)%'( 中的 ,)* 语句仅用于为数组分配或重新分配空间,而不能重新声明数组,一旦在最开始用
)* 语句确定了其维数之后,就再也不能改变其维数的数目。如从二维扩大到三维,或从三维退到一维,唯一能改变
的就是数组的大小,即数组上下界。另外,也不能通过 ,)* 改变数组类型。
4
动态数组以变量作为下标值,在程序运行过程中完成定义,通常分为两步:首先用 )* 或 = !)% 声明一个没有下
标的数组(括号不能省略),然后在过程中用 ,)* 语句定义带下标的数组。如:
)*(/"+9:0/
)*
=)>+ # D$!)%A9#&"+!/0/&/*7 ;%B#&"+!0/&/*>0/:E+!/
#$!)%A:
1?#39F请输入数组大小”B数组输入”B:
,)*(/"+9:
CC
该例先在窗体层用 )* 语句声明了一个空数组 (/"+ 和一个变量 ,然后在按钮事件过程中用 ,)* 语句定义
该数组,下标 在运行时输入。
,)*语句的一般格式为:
ReDim [Preserve] 变量(下标)
该语句用来重新定义动态数组,按定义的上界重新分配存储单元。当重新分配动态数组时,数组中的内容被清除,
但如果 ,)* 语句使用了 =/> 选择项,则不清除数组内容。在 ,)* 语句中可以定义多个动态数组,但每个
数组必须事先用 )*"+)+ !9:(一维数组)或 )*"+)+ !9B:(二维数组)这种形式进行声明,在括号中省略上
界,在用 ,)* 语句重新定义时指定数组下标的上界。如:
)*'+*9:B0//9:B$)&9:0/)
,)*'+*9/:B0//9/:B$)&9/:
,)* 只能出现在事件过程或通用过程中,用它定义的数组是一个“临时”数组,即在执行数组所在的过程时为数组
开辟一定的内存空间,当过程结束时,这部分内存即被释放。
对动态数组的具体说明如下:
(1)动态数组分两次定义,第一次用 )*、= !)%、=)>+ 等语句定义,只有类型,不指定维数;第二在
,)* 语句定义,给出具体的维数和上界。对于一维数组来说,第一次定义时,数组名的后面带有一对圆括号,例
如 *?9:;而对于二维数组来说,第一次定义时,数组名后面的圆括号中有一个逗号,例如 *?9B:,依此类推。
(2)可以多次用 ,)* 语句定义同一个数组,随时修改数组中元素的个数,例如:
=)>+ #D$!)%A9#&>+!/0/&/*7 ;%B#&"+!0/&/*>0/:E+!/
#$!)%A
)**?9:0/)
,*(*?9:
(*?9:1@)%/<
@/ 39*?9::
,)**?9:
(*?9:1")/+!#+/)%'(
@/ 39*?9::
在事件过程中,开始时用 ,)* 定义的数组 (*? 有 个元素,然后再一次用 ,)* 把 *? 数组定义为 个
元素。但是注意,只能改变元素的个数,不能改变数组的维数。
(3)在用 ,)* 重新定义动态数组时,可以使用可选的 =/> 关键字。如果不使用该关键字,则原来数组
中的数据将被清除,而如果使用了该关键字,则原来数组中的数据将被传送到新建立的数组中。
3、数组的清除和重定义
数组一经定义,便在内在中分配了相应的存储空间,其大小是不能改变的。也就是说,在一个程序,同一个数组只
能定义一次。有时候,可能需要清除数组的内容或对数组重新定义,这时可以用 +/ 语句实现。格式为:
Erase 数组名[,数组名]…
+/ 语句用来重新初始化静态数组的元素,或者释放动态数组的存储空间,它只能出现在过程中。注意,在
5
剩余34页未读,继续阅读
资源评论
- yingguanjun_882012-10-24刚下载好,是基本的语法知识,应该还可以的。
boyldr
- 粉丝: 12
- 资源: 6
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功