330 likes | 588 Views
第一章 VB.NET 语言基础. 学习要点. 通过本章的学习,要求学生掌握 ASP.NET 的基本概念和知识,掌握 ASP.NET 所支持的 VB.NET 语言的基本结构和运用。 VB.NET 语言简介 一个简单的程序 VB.NET 中的数据类型 VB.NET 中的变量和常量 VB.NET 中的操作符与表达式 VB.NET 中的控制语句 VB.NET 中的错误处理机制 小结. VB.NET 语言简介.
E N D
学习要点 • 通过本章的学习,要求学生掌握ASP.NET的基本概念和知识,掌握ASP.NET 所支持的VB.NET语言的基本结构和运用。 • VB.NET语言简介 • 一个简单的程序 • VB.NET中的数据类型 • VB.NET中的变量和常量 • VB.NET中的操作符与表达式 • VB.NET中的控制语句 • VB.NET中的错误处理机制 • 小结
VB.NET语言简介 Visual Basic.NET(以下称VB.NET.NET)作为ASP.NET的默认编程语言,不是简单的从VB.NET6的版本上的升级, VB.NET.NET内核代码几乎全部被重写,它是基于 .NET 框架重新设计的,您可以用它来轻松地创建用于微软操作系统和 Web 的下一代应用程序。使用 VB.NET.NET,可视化开发 Web 应用程序、Web 服务、Windows 应用程序和服务器端组件将变得轻而易举。 VB.NET具体体现以下几个方面的特点: • 简单方便性 • 灵活性和兼容性 • 面向对象性 • 较好的安全处理和错误处理 • 版本控制技术
一个简单的程序 using System; namespace HelloWorld { class Class1 { static void Main(string[] args) { System.Console .WriteLine ("Hello world!"); System.Console .ReadLine (); } } }
VB.NET中的数据类型 我们知道,VB.NET.NET是基于.NET框架下的,它之所以能和其他.NET 语言协同工作,因为在数据类型上有极强的相似性比如:在VB.NET6时代,Integer是存储为16位,但是升级到VB.NET.NET后,为了和其他语言保持一致性,在Integer被刻意设计成32位。 共分为以下几类; • 数值型 • 文本编码型 • 布尔编码型 • 日期时间型
字符型 数值型
VB.NET类型 VB.NET类型 .NET类型 .NET类型 所占字节数 所占字节数 取值范围 取值范围 date Boolean Boolean date 1 4 布尔true或false 日期时间数据类型表示的日期范围为#01/01/0001#~#31/12/9999# ,时间范围为#00:00:00#~#23:59:59# 布尔型,日期型
名称 .NET类型 注释 object System.Object root 类型:每一个.NET类型都是由此继承 string System..String Unicode字符串 预定义引用类型 在VB.NET中,预定义或者用户定义都是从object类型中继承的―――System.Object类。
VB.NET中的变量和常量 变量声明和赋值 变量被用于在内存中存储值,通过指定变量类型和赋值变量名来声明变量, • 【变量的命名】 在VB.NET.NET中,变量声明必须遵循一下规则,否则会造成编译异常:1、变量名称的第一个字符必须是字母;2、不能包含应为句号或者嵌入类型声明字符(系统关键字);3、变量名称长度不能超过255个字符;4、在同一个作用域内,变量的名称是唯一的; 要注意的是,VB.NET.NET 中,变量名是不区分大小写的。如以下变量名称是可以被系统接受的:X, y ,Num,x8,x_x等等 • 在VB.NET中,在引用变量的值前都应该赋值---这就是明确赋值。在没有给变量赋值之前就想引用变量的值,只是一个非常危险的动作,当VB.NET编译器会提示错误 。
变量的作用范围 • 变量在其作用范围内都有生存周期,随着范围内过程代码的产生而产生,释放而释放。在一个过程或函数内声明变量时候,只有该过程或函数内部的代码才能访问该变量的值,。这个范围相对整个程序而言是局部的,因此这个变量称为局部变量。局部变量在使用的时候才开始从内存中开辟存储运行空间,一旦这个过程或函数执行完毕,该变量就会从内存中释放出去。也因此,局部变量也称为动态变量。 • 但是有些变量我们需要真个程序体都能访问它的值,我们就要声明全局变量。全局变量一旦建立,就会常驻内存,直到该整个程序体推出内存才会释放。全局变量一般使用静态变量或是常量来实现的。
变量声明 • 动态变量声明如下:Dim X As Integer‘声明一个整形变量X Dim Y As String‘声明一个字符串型变量Y Dim Theday As Date‘声明一个日期时间型变量 Theday Dim x,x_x ,x_y As Integer‘声明变量 x,x_x,x_y 三个变量为整形 • 静态变量声明如下:Shared num As Doolean‘声明布尔静态变量num,改变量常驻内存,直到程序推出系统 注意:在VB6里全局静态变量是使用Static来声明的,对使用过vb6的读者要注意这一点。
定义常量 • 有时候在程序中,某个常数值会频繁使用,但是这些数值没有明确意义,并且很难记忆。这时候,我们就会使用常量。 • 常数是用意义的名字取代那些频繁使用的值,但是本质不同的是当常量一旦被初始化赋值后,其值就不允许改变。常数的来源有两种 系统定义的或是内部的常量是由应用程序和控件提供的,这些常量VB.NET对象库中定义的。 用户自定义的常量。比如圆周率Pi。
常量的命名和声明 • 【常量的命名】 • 常量的命名规则和变量一样。 • 【常量的声明】 • 常量的声明在使用前的,声明语法如下:[Public|Private|Protected|Friend| ProtectedFriend ] Const constname [As Type]=Expression语句中“[Public|Private|Protected|Friend| ProtectedFriend ]”任选参数,声明常量使用范围,如果只在本程序体内使用,可以省略。“constname”是有效的常量名称,“[As Type]”是常量类型,“Expression”是表达式,既可以为数值,也可以为字符串。比如我们在计算圆面积和周长的时候,需要定义Pi,如下:Const pi As Long = 3.1415926‘-―声明 常量Pi,并赋值为3.1415926 Const pi2 As Long = pi * 2‘――声明 常量Pi2,并赋值为已声明常量Pi的二倍Dim x As Integer‘――存放半径Dim q As Long ‘――存放圆面积Dim clen As Long ‘――存放圆周长x = TextBox1.Text clen = pi2 * x‘――引用常量pi2,取得周长q = pi * x ^ 2‘――引用常量pi, 取得面积
VB.NET中的操作符与表达式 VB.NET中大量的操作符可供使用,除了有一些特殊的操作符外,我们可以将剩下的操作符分成4大类――算术,关系,逻辑和位操作符。 逻辑操作符组合两个或多个布尔表达式,它们与关系操作符协调工作,我们可以在以后的流程控制中看到其重要的作用。
运算符优先级 • 算术运算级别最高,然后是比较运算,最后是逻辑运算。在同一运算级别中,单目运算符优先级别高于双目运算符。优先级别相同的运算符同时出现,按照从左至右的顺序,求指运算除外。字符串连接运算优先级低于所有算术运算符,高于所有比较运算符。
数组 • 在编程的时候,当我们处理可罗列有穷个相同类型的变量的时候,为了缩短和简化程序,就可以使用数组来实现 • 在VB.NET里,数组下标索引是从0开始的 • 数组的声明及赋值 Dim x(4) As Integer ‘定义一个包含5个元素的整型数组,元素索引是0~4。 Dim x(9, 9) As Integer 多维数组的运算规则和一维的一样 • ArrayList, VB.NET里,新增添了一个数组列表对象 取代过去VB6里的集合对象而引进的,基本使用方法和集合对象一致,但它还具有了新的功能。如:Dim a As ArrayList = New ArrayList'声明一个数组列表对象,并以"New" 方法引用到实例 Dim b(10) As Integer '声明一长度为11的数组Dim alen, blen As Integer '声明两个整形变量Dim i As integer '声明一个整形变量i,用于循环计For i = 0 To 10 a.Add(i) '每循环一次,数组列表长度增加1,并为新增的元素赋值b(i) = I '每循环一次,将与i值相等的索引对应的元Next '为获取a的长度和数组b的长度, 计算如下:alen = a.Count ' alen的返回值是a中元素个数 ,为7 blen = b.Length 'len的返回值是b中元素个数 ,为7
VB.NET中的控制语句 VB.NET控制语句主要分为两个主要部分: • 选择语句 当运用选择语句时,你定义了一个控制语句,它的值控制了哪个语句被执行。 • 循环语句 重复执行一些基本的语句直到某个条件满足为止。
选择语句 在VB.NET中用到两个选择语句: lif 语句 • 简单If语句:If … Then…写在一行中。如:If X >0 Then y=True复杂If语句:If…Then…ElseIf…Else…End If 2 Select Case语句 • 该语句使用效果和IF语句一样,不同的是当条件分支控制依赖于没个变量时候,该语句的测试效率高于 。 Select Case Stu_marks Case Is < 60 stu_grade = “不及格” Case Is < 75 stu_grade = “及格” Case Is < 90 stu_grade = “优良” Case Else ‘或是case Is <=100 stu_grade = “优秀 End Select
Select case 语句执行顺序说明 1.控制表达式求值。 2.如果 case 标签后的常量表达式符合控制语句 所求出的值,内含语句被执行。 3.如果没有常量表达式符合控制语句,在case else 标签内的内含语句被执行。 4.如果没有一个符合case 标签,且没有case else 标签,控制就转向switch 语段的结束端。
循环语句 程序需要重复执行一些基本的语句直到某个条件满足为止。这循环语句。 VB.NET提供4个不同的循环语句: for 语句 foreach 语句 while 语句 do…while 语句
控制语句小节 这一小节我们主要介绍了如何使用VB.NET中用到的各种选择和循环语句。if 语句在应用程序中可能是最为常用的语句。Select case 语句——尽管同样与C语言的相应部分相似——但也被改善了。for、foreach、while和do语句在循环运用中将体现其作用。
过程 • 在VB.NET里,过程就是封装在Sub …End Sub 内的程序体,一个过程可以有参数,也可以没有参数。 过程可分为通用过程和事件过程 • 事件过程是与控件相关的。面向对象编程的表现之一就是事件驱动模式一般事件过程声明不需要手工编写,如果使用微软的可视化编程工具,当双击IDE窗口里的控件,就自动进入该控件事件的编程环境 • 通用过程是独立于任何控件,只有被调用才能执行。一个通用过程一般是有明确的目的性:即要完成一定功能或任务。通用过程的使用,可以提高代码的重用性,缩短程序体长度,提高编程效率,使程序体结构清晰明朗
函数 函数也是一种特殊的过程,其特殊的地方是函数允许有返回值。当父程序调用函数的时候,子函数将处理后的结果返回到父程序里。函数声明格式如下:[Public|Private| Friend|] Function 函数名 (参数列表)As DataType 参数的传递 • 按值传送是在声明函数或过程的参数里,使用关键字ByVal声明,如果省略,系统默认为按值传送。按值传送的结果是传送到函数或过程里的值不会改变被传送变量的值,接收的传递值只是被传用变量的副本。 • 按址传用送是在声明函数或过程的参数里,使用关键字ByRef声明,在本调用的函数或过程使用该值的时候,直接是读取该传递变量的地址,因而可以改变该变量的值。
错误捕捉和处理 • 在VB.NET里,错误处理是用Try…Catch…..Finally…End Try 来实现的 • Try语句使用格式如下:Try正常运行代码Catch ex As Exception出错时的代码, 一般放置错误信息表述Finally善后处理程序代码,如关闭数据库连接等End Try程序代码运行到Try语句模块时候,首先运行正常代码,如果没有错误,这进入Finally块,然后正常结束运行。一旦在正常代码中出现错误,Try语句就会屏蔽调错误语句,进入Catch,运行其中代码,然后回到Finally,运行善后代码,最后正常结束程序。
错误捕捉示例 Dim str As String‘声明变量,存放信息。Dim a(2) As Integer’声明一个索引长度为3的数组Dim i As Integer Try For i = 0 To 5'循环范围从0至5(, 大于数组a的索引范围) a(i) = i Next Catch ex As Exception str = " 执行出错!!错误描述如下: " + Chr(13)+ex.Message '上句表示如果出现错误,就增加信息Finally str += Chr(13) + "执行完毕!" '执行完毕后,提示执行完毕信息。MsgBox(str) '调用系统自带的MsgBox函数,把信息显示出来。End Try
小结 本章内容主要介绍HTML标记语言和VB.NET的语法基础和语法特点。通过本章的学习,读者已经可以在ASP.NET里编写aspx页面代码了。熟练使用编程语言是编程的基础,而对编程语言的学习是要经过反复使用才能得到巩固,一味的死记很难达到效果,建议同学们多编写程序,在编程过程中就会认识到哪些地方的不足,然后在回顾本章内容,从而加以再学习,达到巩固效果
作业 • 安装VS.NET2003开发环境 • 编写一个”hello world”程序,熟悉VB.NET的程序框架,编程环境和程序开发过程. • 编写一个行列式乘法和求10000以内的素数的程序 • 编写在数组或集合的搜寻某一字符的程序,要求.使用错误捕捉和处理机制来处理可能出现的边界溢出