1 / 31

第二章 变量

第二章 变量. 数据类型介绍 变量的使用 变量作用域 数据类型转换 数组的使用. 数据类型介绍. 1. 通用类型系统( CTS )定义了公共语言运行环境运行时所支持的数据类型 2.CTS 的特征 . 跨语言集成 . 保证代码类型安全 . 管理与提高代码性能的工具. CTS ( 通用类型系统 ). 定义了公共语言运行库 (CLR) 所支持的数据类型. CTS. 值类型. 引用类型. 预定义数据类型 用户定义结构 枚举类型. 字符串 数组 类. 选择数据类型. VB .NET 类型. 大小 ( 字节 ). 取值范围.

edric
Download Presentation

第二章 变量

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 第二章 变量 • 数据类型介绍 • 变量的使用 • 变量作用域 • 数据类型转换 • 数组的使用

  2. 数据类型介绍 1.通用类型系统(CTS)定义了公共语言运行环境运行时所支持的数据类型2.CTS的特征.跨语言集成.保证代码类型安全.管理与提高代码性能的工具

  3. CTS(通用类型系统 ) 定义了公共语言运行库 (CLR) 所支持的数据类型 CTS 值类型 引用类型 预定义数据类型 用户定义结构 枚举类型 字符串 数组 类

  4. 选择数据类型 VB .NET 类型 大小(字节) 取值范围 Boolean 2 True 或 False Date 8 从公元元年的 0:00:00 到9999 年12月31日的 23:59:59 Decimal 16 最多 29 位有效数字, 最大数值 7.9228 x 10 (有符号) 28 Double 8 -4.94065645841246544E-324 ~+1.79769313486231570E+308 (有符号) Integer 4 -2,147,483,648 ~ +2,147,483,647 (有符号) Single 4 -3.4028235E+38 ~ 1.401298E-45(有符号) String 不定 0 到大约 20亿 Unicode字符

  5. 数据类型 处理类型 CTS 类型 示例 Short, Integer,Long, Byte 所有整数 值类型 23 (Integer) Single, Double,Decimal 包含小数部分的数字 值类型 9456.72(Decimal) Boolean True 或 False 情况 值类型 True Date 数据和事件值 值类型 02/12/2003 12:30:42 A.M. String 可打印和显示的字符 引用类型 “House” Object 指向对象值的指针 引用类型 myClass myPerson 选择数据类型

  6. 数据类型1. 值类型:一般指标量类型(如Integer),所有的指类型都有一个数据的拷贝(枚举类型与结构类型)2.引用类型:一般指对象类型,当申明一个引用类型数据时,系统会分配一个指向实际引用对象的指针(字符串与数组)

  7. 练习(值类型) • dim s1 as string=“huangjinshui”dim s2 as string s2=s1console.writeline(s2 is s1)

  8. 练习(引用类型) • public class person public firstname as stringend class……dim p1 as personp1.firstname=“huangjinshui”dim p2 as personp2=p1p2.firstname=“huangjin”console.writeline(p1.firstname)

  9. 数据类型VB.NET中定义的数据类型有整型、日期时间型、浮点型、逻辑型、字符串型、对象类型等.Object数据类型 继承与System.Object类,可以包含任何类型的变量,在NET框架中任何事物都是对象。下列定义都是合法的:dim o as object dim s as string s=“asdfg”o=123o=s

  10. .Integer数据类型包括BYTE、SHORT、INTEGER、LONG等.Boolean数据类型将数值型数据转换成BOOLEAN值时,0转换成FALSE,而其他值转换成TRUE,将BOOLEAN数据转换成数值型数据时,FALSE转换成0,TRUE转换成-1.CHAR数据类型一个CHAR变量包含一个UNICODE字符,把一个字符赋给CHAR变量时,需要在尾部加上C字符。如:dim ch as char ch=“a” c

  11. 不能将字符串表达式赋给CHAR变量,必须使用CHAR函数将STRING数据类型转换成CHAR数据类型如:ch=cchar(mid(“asdfg”,3,1))可以将unicode代码转换成字符如:ch=chr(65)不能将字符串表达式赋给CHAR变量,必须使用CHAR函数将STRING数据类型转换成CHAR数据类型如:ch=cchar(mid(“asdfg”,3,1))可以将unicode代码转换成字符如:ch=chr(65)

  12. 为什么要强制定义数据类型而不直接使用OBJECT类型:.最大程度减少程序所占内存.编译器进行类型检查,找出因类型不匹配而导致失败的语句.加快代码执行速度为什么要强制定义数据类型而不直接使用OBJECT类型:.最大程度减少程序所占内存.编译器进行类型检查,找出因类型不匹配而导致失败的语句.加快代码执行速度

  13. 变量的使用 任务 为变量命名 声明变量 变量赋值 使用变量

  14. 变量 • 变量用于存储在应用程序执行时发生变化的值 • 变量具有以下 6 个要素 : 要 素 描述 名称 代码中用来标识变量的标识符 地址 存储变量值的内存位置 数据类型 变量的存储类型和初始大小 值 变量地址中的值 作用域 可以访问和使用变量的代码集 生命期 变量合法且可用的时间段

  15. 为变量命名 • 命名规则 • 每个变量名都必须以字母字符或下划线“_”开头 • 不能使用空格或符号 • 不能使用关键字,如 Integer 或 Date • 变量命名示例 • CustomerName (PascalCasing) • accountBalance (camelCasing)

  16. 声明变量 • 语法 • Dim variableName As Type • 值类型变量示例 • 引用类型变量示例 Dim numberBooks As Integer Dim squareFootage As Single Dim myForm As Form Dim userInput As String

  17. Option Explicit • Option Explicit 设为 On (默认) • 必须在使用变量前显式声明该变量 • 降低逻辑错误且使代码易于维护 • 使代码执行速度加快 • Option Explicit 设为 Off • 允许隐式声明该变量 • 增加命名冲突和隐藏拼写错误 • 降低内存使用效率

  18. 变量赋值 • 可以声明变量之后给变量赋值 • 可以在声明时给变量赋值 Dim birthday As Date birthday = #3/9/1974# Dim birthday As Date = #3/9/1974#

  19. 使用变量 可以使用变量来: • 存储表达式产生的数据 • 存储用户的输入信息 • 存储对象 • 存储属性值 • 存储返回值 • 存储输出值

  20. 用 Const 声明 Declare with Dim Declare with Const 用 Dim 声明 当程序运行时,值不 改变 Values change asapplication runs Values stay the same asapplication runs 当程序运行时,值会改变 比常量占用更多的内存 比变量占用更少的内存 Uses less memory thanvariables Uses more memory thanconstants 变量与常量的差别 变量 Variable 常量 Constant 声明常量的语法:Const constantName As Type

  21. 变量作用域 Public Module or Class Public A As Integer 在整个解决方案中可以访问变量 A Friend Module or ClassFriend BAs Date 在项目内访问变量 B Private Module or ClassPrivate c As String 在模块内可以访问变量 c Procedure or Block Dim d As Integer 只能在该过程或语句块中访问变量d

  22. 作用域 定义: 作用域是通过变量名访问该变量的所有代码集 影响作用域的因素 块 过程 模块, 类, 或结构 声明的位置 声明所在模块、类或结构的访问级别 Private Public Friend 用来声明变量的语法

  23. 声明局部变量 声明位置 关键字 访问修饰符 作用域 块中 Dim 无 块级别 块级别作用域的示例 过程中 Dim 无 过程级别作用域 If x < > 0 Then Dim blockNumber As Integer blockNumber = x + 1 End If 过程级作用域的示例 Sub ShowMessage_Click( ) Dim myVariable As String ' Insert code to add functionality End Sub

  24. 声明静态变量 • 声明位置:在块或过程中声明 • 语法:用 Static 关键字 (无访问修饰符) • Static variableName As Type • 示例 Sub AddItem_Click( ) Static items As Integer 'Add 1 to the counter items += 1 MessageBox.Show ("The count is now " & items) End Sub

  25. 访问修饰符 作用域 Private 模块 Friend 项目 Public 解决方案 声明模块变量 • 在模块、类或结构中声明 • 示例 Private myModuleMessage As String Friend myProjectMessage As String Public mySolutionMessage As String

  26. 数组 • 定义:数组是相同类型的一组数据元素 • 数组中所有元素是同一数据类型 • 每个元素都可以通过索引来访问 • 示例 • 声明一个有7个元素的数组: • 访问数组的第三个元素: 索引 6 索引 0 Dim countHouses(6) As Integer TextBox1.Text = CStr(countHouses(2))

  27. 声明一维数组 • 声明一维数组时要指定: • 数组的名字 • 大小(元素的个数) • 元素数据类型 • 访问级别(如果需要) AccessModifierArrayName(Size) As Type 指定数组元素 的元素数据类型 指定数组的大小 指定数组的名字 指定数组的访问级别

  28. 使用多维数组 • 指定所有元素和维数 • 元素总数 = 所有维数大小的乘积 • 要声明一个多维数组变量: • 在数组名后面添加一对圆括号并在圆括号中列出每维的大小 • 并用逗号分隔 • 用 Dim结构或访问修饰符开始声明 • 示例: Public ThreeDimensions(3,9,14) As Double 'Three-dimensional array

  29. 改变数组大小 • 可以在任何时候改变数组大小 • 用 ReDim 结构 • 改变数组大小的语法: • 示例: ReDim existingArray(NewSize) Dim myArray(,) '声明数组 ReDim myArray(3, 5) '改变数组的大小

  30. 数组的初始化值 • 初始化列表 声明并创建一个包含5个整数的数组 Dim arr() As Integer = {0, 1, 2, 3, 4} 声明并创建一个由字符串组成的二维数组 它有2行4列 Dim arr2(,) As String = {{″00″, ″01″, ″02″, ″03″}, _ {″10″, ″11″, ″12″, ″13″}}

  31. 复制数组 • 数组间赋值 Dim arr1() As Integer = {0, 111, 222, 333} Dim arr2() As Integer arr2 = arr1 arr2(1) = 9999 ′检验原数组已经被修改 Console.WriteLine(arr1(1)) ′输出 9999 • Clone 函数 Dim arr3() As Integer = {0, 111, 222, 333} Dim arr4() As Integer arr4 = arr3.Clone arr4(1) = 9999 ′检验原数组并没有被修改 Console.WriteLine(arr3(1)) ′输出 111

More Related