Visual Basic 数据类型,计算机程序可以处理数据。 用于各种数据类型的工具是现代计算机语言的基本组成部分。 根据 Wikipedia 的定义,data type
是一组值,以及对这些值的允许操作。
Visual Basic 中的两种基本数据类型是值类型和引用类型。 基本类型(字符串除外),枚举和结构是值类型。 类,字符串,标准模块,接口,数组和委托是引用类型。 每种类型都有一个默认值。 参考类型在堆上创建。 引用类型的生存期由.NET 框架管理。 引用类型的默认值为空引用。 分配给引用类型的变量会创建引用的副本,而不是引用值的副本。 值类型在堆栈上创建。 生存期由变量的生存期决定。 分配给值类型的变量会创建要分配的值的副本。 值类型具有不同的默认值。 例如,布尔默认值为 False,十进制为 0,字符串为空字符串“”。
布尔值
我们的世界建立了双重性。 有天与地,水与火,井与章,男人与女人,爱与恨。 在 Visual Basic 中,Boolean
数据类型是具有以下两个值之一的原始数据类型:True 或 False。 这是基本的数据类型。 在计算机程序中非常常见。
快乐的父母正在等待孩子的出生。 他们为两种可能性都选择了名称。 如果要成为男孩,他们选择了约翰。 如果要成为女孩,他们会选择杰西卡。
该程序使用随机数生成器来模拟我们的情况。
num 变量具有 Byte 数据类型。 这个很重要。 字节数据类型的整数值可以为 0..255。
这两行随机取 0 或 1。Rnd()
函数返回小于 1 但大于或等于 0 的随机值。 我们使用Round()
方法将数字四舍五入。 大于 0.5 的随机值将四舍五入为 1。所有其他随机值将四舍五入为零。使用CType()
函数将 Double 数据类型转换为Byte
。 因此,将num
变量分配为 0 或 1。Randomize()
函数根据系统计时器初始化带有种子的随机数生成器。
根据num
变量,布尔值male
变量设置为 True 或 False。
如果将男性变量设置为 True,则选择名称 John。 否则,我们选择名称 Jessica。 诸如 If / Else 语句之类的控件结构可使用布尔值。
整数
整数是实数的子集。 它们写时没有小数或小数部分。 整数落入集合 Z = {…,-2,-1,0,1,2,……}中整数是无限的。
在计算机语言中,整数是原始数据类型。 实际上,计算机只能使用整数值的子集,因为计算机的容量有限。 整数用于计算离散实体。 我们可以有 3、4、6 个人,但不能有 3.33 个人。 我们可以有 3.33 公斤。
VB 别名 | .NET 类型 | 尺寸 | 范围 |
---|---|---|---|
SByte |
System.SByte |
1 个字节 | -128 至 127 |
Byte |
System.Byte |
1 byte | 0 至 255 |
Short |
System.Int16 |
2 字节 | -32,768 至 32,767 |
UShort |
System.UInt16 |
2 bytes | 0 至 65,535 |
Integer |
System.Int32 |
4 字节 | -2,147,483,648 至 2,147,483,647 |
UInteger |
System.UInt32 |
4 bytes | 0 至 4,294,967,295 |
Long |
System.Int64 |
8 字节 | -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807 |
ULong |
System.UInt64 |
8 bytes | 0 至 18,446,744,073,709,551,615 |
可以根据我们的需要使用这些整数类型。 没有人(也许有些圣经人除外)的年龄可以超过 120、130 岁。 然后,我们可以在程序中将Byte
类型用于年龄变量。 这样可以节省一些内存。
在此示例中,我们尝试分配一个超出数据类型范围的值。 Mono 编译器给出System.OverflowException
。 Visual Basic 2008 Express 将不会编译此示例。
在 Visual Basic 中,可以使用三种不同的表示法指定整数:十进制,十六进制和八进制。 八进制值以&o
开头,十六进制以&h
开头。
我们使用三个符号将 31 分配给三个变量。 然后将它们打印到控制台。
默认符号是十进制。 程序以十进制显示这三个数字。
如果我们使用整数,那么我们将处理离散实体。 我们将使用整数来计算苹果。
在我们的程序中,我们计算了苹果的总量。 我们使用乘法运算。
程序的输出。
浮点数
浮点数表示计算中的实数。 实数测量连续的数量,例如重量,高度或速度。 在 Visual Basic 中,我们有三种重要的浮点类型:Single
,Double
和Decimal
。
VB 别名 | .NET 类型 | 大小 | 精度 | 范围 |
---|---|---|---|---|
Single |
System.Single |
4 bytes | 7 位数 | 1.5 x 10^-45 至 3.4 x 10^38 |
Double |
System.Double |
8 bytes | 15-16 位数字 | 5.0 x 10^-324 至 1.7 x 10^308 |
Decimal |
System.Decimal |
16 字节 | 小数点后 28-29 位 | 1.0 x 10^-28 至 7.9 x 10^28 |
上表给出了浮点类型的特征。
我们可以使用各种语法来创建浮点值。
我们有三种创建浮点值的方法。 第一种是使用小数点的“正常”方式。 第二种使用科学计数法。 最后一个是数字运算的结果。
这是上面程序的输出。
Single
和Double
值以不同的精度存储。 比较浮点值时应格外小心。
而且数字不相等。
假设一个短跑运动员跑了 1 个小时,跑了 9.87 秒。 他的公里/小时速度是多少?
在此示例中,必须使用浮点值。
为了获得速度,我们将距离除以时间。
这是短跑运动员程序的输出。
枚举
枚举类型(也称为枚举或枚举)是由一组命名值组成的数据类型。 可以将任何枚举器分配为已声明为具有枚举类型的变量作为值。 枚举使代码更具可读性。
在我们的代码示例中,我们为工作日创建一个枚举。
使用Enum
关键字创建枚举。 星期一,星期二…裸词实际上存储数字 0..6。
我们有一个名为 day 的变量,其类型为 Days。 它被初始化为星期一。
与将日变量与某个数字进行比较相比,此代码更具可读性。
此行将 0 打印到控制台。 对于计算机,枚举是数字。
我们会进一步进行枚举。
季节可以很容易地用作枚举。 我们可以为枚举指定基础类型,还可以为其提供确切的值。
使用As
关键字,我们指定枚举的基础类型。 我们还给每个成员一个特定的号码。
这两行将 1、3 打印到控制台。
字符串和字符
String
是代表计算机程序中文本数据的数据类型。 Visual Basic 中的字符串是 Unicode 字符序列。 Char
是单个 Unicode 字符。 字符串用单引号或双引号引起来。
由于字符串在每种编程语言中都非常重要,因此我们将为它们专门整整一章。 在这里,我们仅举一个小例子。
程序将 Z 字符打印到终端。
在这里,我们创建一个字符串变量,并为其分配“ ZetCode”值。
SubString()
方法用于从字符串返回子字符串。 方法返回类型为String
。 我们要检索并分配一个字符。 这就是为什么我们需要使用CType
功能将String
转换为Char
的原因。 字符随后被打印到终端。
数组
数组是处理元素集合的复杂数据类型。 每个元素都可以通过索引访问。 数组的所有元素必须具有相同的数据类型。
我们将一整章专门介绍数组,这里仅显示一个小例子。
在此示例中,我们声明一个数组,用数据填充它,然后将数组的内容打印到控制台。
我们声明一个整数数组,该数组最多可以存储 5 个整数。
在这里,我们为创建的数组分配值。
我们遍历数组并将数据打印到控制台。 数组的Length
属性为我们提供了相关数组的长度。
日期
Date
是值类型,其中包含日期值,时间值或日期和时间值。
我们以三种不同的格式显示今天的日期。 日期&时间,日期和时间。
我们声明一个Date
数据类型的变量。
返回当前日期和时间,使用计算机的系统日期和时间。
此行以完整格式打印日期。
ToShortDateString()
返回短日期字符串格式,ToShortTimeString()
返回短时间字符串格式。
示例的输出。
类型转换
我们经常一次处理多种数据类型。 将一种数据类型转换为另一种数据类型是编程中的常见工作。 类型转换或类型转换是指将一种数据类型的实体更改为另一种。 有两种类型的转换。 隐式和显式。 隐式类型转换,也称为强制转换,是编译器自动进行的类型转换。
在此示例中,我们有一堆隐式转换。
当 Option Strict 语句为 On 时,某些隐式转换是不可能的。 这就是为什么我们评论这一行。
浮点值分配给Byte
数据类型的变量。 它是整数数据类型。 取整为 1; 失去一些精度。 这是缩小隐式转换。
我们添加两个值。 一整数和一浮点值。 结果是浮点值。 这是扩展的隐式转换。
结果为 24。该字符串被隐式转换为数字。
结果为 1212。将整数转换为字符串,然后将两个字符串相加。
接下来,我们将显示 Visual Basic 中的一些显式转换。
函数 | 转换为 |
---|---|
CBool |
Boolean |
CByte |
Byte |
CChar |
Unicode character |
CDate |
Date |
CDb1 |
Double |
CDec |
Decimal |
CInt |
Integer |
CLng |
Long |
CObj |
Object |
CShort |
Short |
CSng |
Single |
CStr |
String |
我们有几个函数可以执行显式转换。
在程序中,我们执行三种类型的转换。
这两行执行缩小的显式转换。 第一个数字四舍五入为 0,第二个数字四舍五入为 1。
Val()
函数返回字符串中包含的数字。 在我们的情况下为 1071。
示例的输出。