第2章 Visua| Basic net语言基础 21数据类型 22数据类型转换 23常数和枚举型(Enum) 24结构 25变量 26运算符与表达式 27数组与集合
2.1 数据类型 2.2 数据类型转换 2.3 常数和枚举型(Enum) 2.4 结 构 2.5 变 量 2.6 运算符与表达式 2.7 数组与集合 第2章 Visual Basic.NET语言基础
第2章 Visua| Basic net语言基础 本章知识点: 变量及声明 ●运算符与表达式 ●数组及声明 ●常用内部函数
本章知识点: ⚫变量及声明 ⚫运算符与表达式 ⚫数组及声明 ⚫常用内部函数 第2章 Visual Basic.NET语言基础
2.1数据类型 为了方便识别和处理,编程语言系统中的不同信息在计算机 中具有不同的表示,占用不同的储存空间,这些信息在语言系 统中称之为数据类型。 Visua| Basic net使用的每种数据类 型都与公共语言运行环境(CLR)的通用类型系统( Common Type System,cTS)中的一种类型直接对应。这为构建跨语 言集成,保证代码类型安全,确保用不同语言编写的对象能够 交互作用打下了基础。 CTS支持两种类型:值类型和引用类型。 值类型直接包含数据。包括:所有的数值数据类型、Char、 Boolean、Date、所有结构、枚举类型。 引用类型数据包含指向对象实例的引用或指针。两个引用类 型数据可以指向同一个对象实例,因此对一个引用类型数据的 操作会影响其他引用类型数据。 引用类型包括: String、所有数组和类
为了方便识别和处理,编程语言系统中的不同信息在计算机 中具有不同的表示,占用不同的储存空间,这些信息在语言系 统中称之为数据类型。Visual Basic .NET 使用的每种数据类 型都与公共语言运行环境(CLR)的通用类型系统(Common Type System,CTS)中的一种类型直接对应。这为构建跨语 言集成,保证代码类型安全,确保用不同语言编写的对象能够 交互作用打下了基础。 CTS支持两种类型:值类型和引用类型。 值类型直接包含数据。包括:所有的数值数据类型、 Char、 Boolean、Date、所有结构、枚举类型。 引用类型数据包含指向对象实例的引用或指针。两个引用类 型数据可以指向同一个对象实例,因此对一个引用类型数据的 操作会影响其他引用类型数据。 引用类型包括:String、所有数组和类。 2.1 数据类型
2.1数据类型 2.1.1VB.NET的基本数据类型 如表2-1所示给出了 VB NET常用的数据类型及其支持的CLR 类型和取值范围。 在“科学计数法”中,“E”表示以10为底的幂。因此 356E+2表示3.56×102或356,356E-2表示3.56/102或 0.0356。 公共语言运行库根据应用程序所在执行平台的特性来分配存 储。在某些情况下,它会尽可能紧密地压缩声明的元素(变 量)。而在其他情况下它会将数据按內存地址的整数边界存放。 另外,在64位平台上的存储分配与在32位平台上不同 引用任何基本或复合数据类型的 Object在除了该数据类型中 包含的数据之外还要额外使用4Byte的引用地址
如表2-1所示给出了VB.NET常用的数据类型及其支持的CLR 类型和取值范围。 在“科学计数法”中,“E”表示以10为底的幂。因此 3.56E+2表示3.56 × 102或356,3.56E-2表示3.56/102或 0.0356。 公共语言运行库根据应用程序所在执行平台的特性来分配存 储。在某些情况下,它会尽可能紧密地压缩声明的元素(变 量)。而在其他情况下它会将数据按内存地址的整数边界存放。 另外,在64位平台上的存储分配与在32位平台上不同。 引用任何基本或复合数据类型的Object在除了该数据类型中 包含的数据之外还要额外使用4 Byte的引用地址。 2.1 数据类型 2.1.1 VB.NET的基本数据类型
2.1数据类型 212整型数据类型 有符号的整型数据类型包括∶ SByte(8位)、短整型 Short (16位)、整型 nteger(32位)和长整型Long(64位)。 如果某个变量总是存储整数而不是带小数的数字,则将它声明 为这些类型中的一种 用整型数进行算术运算比用其他数据类型快。在 VBNETI中使 用 Integer类型进行算术运算是最快的 对于Byte、 UInteger等无符号整型数据类型,无法表示负 数。如果将一元负(-)运算符用于取值为无符号整型数据类型 的表达式,则 Visual basic首先将表达式转换为相应的有符号的 整型数据类型。 可用文本类型字符标识数据的类型,对于整型、文本类型字 符S表示 Short,表示 nteger,L表示Long,US表示 UShort U表示 UInteger,UL表示 ULong。如 Dim IntVar As shortIntVar= 92S
有符号的整型数据类型包括:SByte(8位)、短整型 Short (16 位)、整型Integer(32 位)和长整型Long(64 位)。 如果某个变量总是存储整数而不是带小数的数字,则将它声明 为这些类型中的一种。 用整型数进行算术运算比用其他数据类型快。在VB.NET中使 用Integer类型进行算术运算是最快的。 对于Byte 、UInteger等无符号整型数据类型,无法表示负 数。如果将一元负(-)运算符用于取值为无符号整型数据类型 的表达式,则Visual Basic首先将表达式转换为相应的有符号的 整型数据类型。 可用文本类型字符标识数据的类型,对于整型、文本类型字 符S表示Short,I表示Integer, L表示Long,US表示UShort, UI表示UInteger,UL表示ULong。如: Dim IntVar As ShortIntVar = 92S 。 2.1 数据类型 2.1.2 整型数据类型
213非整型数据类型 非整型数据类型有:十进制定点型 Decima(128位)、单 精度浮点型 Single(32位)和双精度浮点型 Double(64 位)。它们都是有符号类型。如果数据可能包含小数,则将其 声明为这些类型之 相对于浮点型( Single和 Double) Decimal数据类型能 表示的有效位数多、精度高,但数字的范围小。 浮点数的科学表示法为: mmmeeee,其中mmm是尾数 (有效数字),eee是以10为底的指数。 对于非整型,文本类型字符D表示 Decima,F表示 Single R表示 Double。如 Dim DecVar As Decimal 字符 Decvar 被声明为 Decima数据类型 Decvar=9223372036854775808D 赋值时 在数值后面加文本类型字符D
2.1.3 非整型数据类型 非整型数据类型有:十进制定点型Decimal(128位)、单 精度浮点型Single(32 位)和双精度浮点型Double(64 位)。它们都是有符号类型。如果数据可能包含小数,则将其 声明为这些类型之一。 相对于浮点型(Single 和 Double)Decimal 数据类型能 表示的有效位数多、精度高,但数字的范围小。 浮点数的科学表示法为:mmmEeee,其中mmm是尾数 (有效数字),eee是以10为底的指数。 对于非整型,文本类型字符D表示Decimal, F表示Single, R表示Double。如: Dim DecVar As Decimal ‘字符DecVar 被声明为Decimal数据类型 DecVar = 9223372036854775808D ‘赋值时 在数值后面加文本类型字符D
2.14字符数据类型 字符数据类型是用来处理可打印和可显示的字符。有Char 数据类型和 String数据类型两种。 char数据类型是无符号的单个双字节(16位) Unicode字 符。Char类型和数字类型之间的转换可以通过函数实现类型转 换,如AscW和chrW。 如果打开类型检查开关( Option Strict),必须将文本类 型字符C追加到单字符后,以将其标识为Char数据类型,否则 将出错。如下例所示: Option Strict On .a Dim CharVar As CharCharVar ¥"" Option Strict On时不允许从 String到char的隐式转 换,故本句出错 Charvar="¥"c'必须加文本类型字符C
2.1.4 字符数据类型 字符数据类型是用来处理可打印和可显示的字符。有Char 数据类型和String数据类型两种。 Char数据类型是无符号的单个双字节(16位)Unicode字 符。Char类型和数字类型之间的转换可以通过函数实现类型转 换,如AscW和ChrW。 如果打开类型检查开关(Option Strict),必须将文本类 型字符C追加到单字符后,以将其标识为Char数据类型,否则 将出错。如下例所示: Option Strict On ' ...Dim CharVar As CharCharVar = "¥" ' Option Strict On时不允许从String到Char的隐式转 换,故本句出错CharVar = "¥"C ' 必须加文本类型字符C
stng字符串类型是0个或多个 Unicode字符的序列。如果某 个变量总是包含字符串而从不包含数值,则将它声明为 String 类型,如 Dim StrVar Str Var 1 As stringstr Var="Database"StrVar1 Microsoft.∨ sual Basic Left( Strvar4)" Strvar1的值为"Data" stng数据类型包含 Unicode字符,而每个 Unicode字符都可 在0和65535之间取值。 String没有文本类型字符。 在任何标识符后追加标识符类型字符$可将其强制转换成 String数据类型。 另外,VBFⅸ edString Attribute类指示将字符串当作固定长度 的字符串来处理。如 Public Str Var As String 其中,字符串变量 Strvar长度固定为m个字符
String字符串类型是0个或多个Unicode字符的序列。如果某 个变量总是包含字符串而从不包含数值,则将它声明为String 类型,如: Dim StrVar ,StrVar1 As StringStrVar = "Database"StrVar1 = Microsoft.VisualBasic.Left(StrVar, 4) ' StrVar1的值为"Data" String 数据类型包含 Unicode 字符,而每个 Unicode 字符都可 在 0 和 65,535 之间取值。String 没有文本类型字符。 在任何标识符后追加标识符类型字符 $ 可将其强制转换成 String 数据类型。 另外,VBFixedStringAttribute类指示将字符串当作固定长度 的字符串来处理。如: Public StrVar As String 其中,字符串变量StrVar长度固定为m个字符
2.1.5布尔型( Boolean) Boolean数据类型是被解释为True或 False的无符号值。如果 某个变量只能包含两个状态,则将它声明为 Boolean类型 Boolean没有文本类型字符,它的默认值是 False。 Boolean变量以16位(2Byte)的数值形式存储,但只能是 True或是 False。使用关键字True与 False将 Boolean变量赋值为 这两个状态中的一个。如: Dim bovar as boolean BoVar True 在将数值数据类型转换为 Boolean值时,0会转换为 False, 而其他所有值都将转换为True。在将 Boolean值转换为数值类 型时,Fase将转换为0,True将转换为-1 建议不要编写依赖True和 FAlse的等价数值的代码,以免出现 不必要的错误
2.1.5 布尔型(Boolean) Boolean数据类型是被解释为True或False的无符号值。如果 某个变量只能包含两个状态,则将它声明为Boolean类型。 Boolean没有文本类型字符,它的默认值是 False。 Boolean变量以16位(2 Byte)的数值形式存储,但只能是 True或是False。使用关键字 True与False将Boolean变量赋值为 这两个状态中的一个。如: Dim BoVar As Boolean BoVar = True 在将数值数据类型转换为Boolean值时,0会转换为False, 而其他所有值都将转换为 True。在将Boolean值转换为数值类 型时,False将转换为0,True将转换为-1。 建议不要编写依赖True和False的等价数值的代码,以免出现 不必要的错误
216日期类型(Date) Date数据类型是以IEEE64位(8Byte)整数的形式存储。 可表示从公历第1年1月1号(1:00:00AM)开始的时间 Date数据类型的变量或常数可包含日期和时间。日期数据必须 用“#“括起来,格式为M/d/yyy。如: Dim someDate As date SomeDate=#1/1/101:00:00AM#等效 #01:00:00AM# SomeDate=#1/1/100:59:59AM#'系统提示错误 将数字数据类型转换为Date类型时,isua| Basic将它的 值视为有符号整数。如果试图转换负数,则会出错。 Date没有文本类型字符。等价的NET数据类型是 System DateTime
2.1.6 日期类型(Date) Date数据类型是以IEEE64位(8Byte)整数的形式存储。 可表示从公历第1年1月1号 (1:00:00 AM) 开始的时间。 Date数据类型的变量或常数可包含日期和时间。日期数据必须 用“#”括起来,格式为M/d/yyyy。如: Dim SomeDate As Date SomeDate = #1/1/1 01:00:00 AM# ‘等效 #01:00:00 AM# SomeDate = #1/1/1 00:59:59 AM# ‘系统提示错误 将数字数据类型转换为Date类型时,Visual Basic将它的 值视为有符号整数。如果试图转换负数,则会出错。 Date没有文本类型字符。等价的.NET数据类型是 System.DateTime