Visual Basic 数据类型
数据类型是指用于声明不同类型的变量或函数的扩展系统。变量的类型决定了它在存储器中占用多少空间以及如何解释存储的位模式。
VB 数据类型
VB 提供了广泛的数据类型。下表显示了所有 VB 可用的数据类型
| 数据类型 | 存储分配(大小) | 值范围 |
|---|---|---|
| Boolean | 取决于平台 | True 或 False |
| Byte | 1 个字节 | 0 ~ 255(无符号) |
| Char | 2 个字节 | 0 ~ 65535(无符号) |
| Date | 8 个字节 | 0001 年 1 月 1 日 00:00:00(午夜)至 9999 年 12 月 31 日 11:59:59 PM |
| Decimal | 16个字节 | 0 ~ +/-79,228,162,514,264,337,593,543,950,335 (+/-7.9…E+28) 没有小数点; 0 ~ +/-7.9228162514264337593543950335,在小数点右边有 28 位数字值 |
| Double | 8个字节 | 负值范围:-1.79769313486231570E + 308 至 -4.94065645841246544E-324; 正值范围:4.94065645841246544E-324 至 1.79769313486231570E+308 |
| Integer | 4个字节 | -2,147,483,648 至 2,147,483,647(有符号) |
| Long | 8 个字节 | -9,223,372,036,854,775,808 至 9,223,372,036,854,775,807(带符号) |
| Object | 在 32 位平台上有 4 个字节,在 64 位平台上有 8 个字节 | 任何类型都可以存储在 Object 类型的变量中 |
| SByte | 1 个字节 | -128 至 127(有符号) |
| Short | 2 个字节 | -32,768 至 32,767(有符号) |
| Single | 4 个字节 | -3.4028235E + 38 到 -1.401298E-45 为负值;1.401298E-45 至 3.4028235E + 38 为正值 |
| String | 取决于平台 | 0 到约 20 亿个 Unicode 字符 |
| UInteger | 4 个字节 | 0 到 4,294,967,295(无符号) |
| ULong | 8 个字节 | 0 到 18,446,744,073,709,551,615(无符号) |
| 用户自定义 | 取决于平台 | 结构中的每个成员都有一个由其数据类型决定的范围,而与其他成员的范围无关 |
| UShort | 2 个字节 | 0 ~ 65,535(无符号) |
实例
以下实例演示了一些类型的使用,创建一个项目:DataTypes,并创建一个 VB 文件:DataTypes.vb:
Module DataTypesSub Main()Dim b As ByteDim n As IntegerDim si As SingleDim d As DoubleDim da As DateDim c As CharDim s As StringDim bl As Booleanb = 1n = 1234567si = 0.12345678901234566d = 0.12345678901234566da = Todayc = "U"cs = "Me"If ScriptEngine = "VB" Thenbl = TrueElsebl = FalseEnd IfIf bl Then'the oath takingConsole.Write(c & " and," & s & vbCrLf)Console.WriteLine("declaring on the day of: {0}", da)Console.WriteLine("We will learn VB.Net seriously")Console.WriteLine("Lets see what happens to the floating point variables:")Console.WriteLine("The Single: {0}, The Double: {1}", si, d)End IfConsole.ReadKey()End SubEnd Module
结果如下:

VB 类型转换函数
VB 提供了以下类型转换函数:
| 编号 | 方法 | 描述 |
|---|---|---|
| 1 | CBool(expression) | 将表达式转换为布尔数据类型。 |
| 2 | CByte(expression) | 将表达式转换为 Byte 数据类型。 |
| 3 | CChar(expression) | 将表达式转换为 Char 数据类型。 |
| 4 | CDate(expression) | 将表达式转换为日期数据类型 |
| 5 | CDbl(expression) | 将表达式转换为 Double 数据类型。 |
| 6 | CDec(expression) | 将表达式转换为十进制数据类型。 |
| 7 | CInt(expression) | 将表达式转换为 Integer 数据类型。 |
| 8 | CLng(expression) | 将表达式转换为 Long 数据类型。 |
| 9 | CObj(expression) | 将表达式转换为 Object 对象类型。 |
| 10 | CSByte(expression) | 将表达式转换为 SByte 数据类型。 |
| 11 | CShort(expression) | 将表达式转换为 Short 数据类型。 |
| 12 | CSng(expression) | 将表达式转换为 Single 数据类型。 |
| 13 | CStr(expression) | 将表达式转换为字符串数据类型。 |
| 14 | CUInt(expression) | 将表达式转换为 UInt 数据类型。 |
| 15 | CULng(expression) | 将表达式转换为 ULng 数据类型。 |
| 16 | CUShort(expression) | 将表达式转换为 UShort 数据类型。 |
实例
以下实例演示了上述一部分函数的使用:
Module DataTypesSub Main()Dim n As IntegerDim da As DateDim bl As Boolean = Truen = 1234567da = TodayConsole.WriteLine(bl)Console.WriteLine(CSByte(bl))Console.WriteLine(CStr(bl))Console.WriteLine(CStr(da))Console.WriteLine(CChar(CChar(CStr(n))))Console.WriteLine(CChar(CStr(da)))Console.ReadKey()End SubEnd Module
结果如下:
True-1True2022/5/3112