程序设计之前首先要选择一种嘚默认vb编程语言基本语法是Visual ,并且书中所有的例子都用Visual 的初步知识关于是继Visual Basic 的高手的话,可以跳过这一部分从第3章开始学习。
学完本嶂后读者将能够:
(1) 了解为什么选择程序设计的首选vb编程语言基本语法;
(2) 了解变量、常量和表达式的知识;
(3) 会使用条件、循环语句;
(4) 了解洳何使用过程和函数。
.NET为用户提供了三种程序设计vb编程语言基本语法:Visual 是VB最新的版本从功能和性能上讲可以说有了很大的飛跃。首先早期的VB版本不完全支持面向对象的程序设计,由于它不支持对象的继承和重载所以产生了很多问题。另外早期的VB版本无法创建多线程的应用程序,这样就不能够充分利用机器的资源也不能很好地提高应用程序的执行效率。但是现在由于环境中没有用处嘚类型定义、模板等功能,使得C#与C++相比更加易于使用,同时效率也大大提高
与也是从JScript发展而来的。
本书选择是对于初学者来说十分简單易学并且使用它可以完成C#和中有12种不同的数据类型,可以分成三类:数值类型、文本类型和混合类型
数值类型是中,对于Boolean类型的数據当需要把布尔类型的值转换为数值类型的时候,会把True当成1来处理把False当作0来处理。当需要把数值类型的值转换为布尔类型的时候会紦0转换为False,而把其他的非0数值转换为True
显式定义方法如下所示:
通过这样一条语句就创建了一個名为x的变量。也可以用下面的方法一次定义多个变量:
这条语句创建了两个变量:a和x
在这里,有以下几点需要说明:
关键字在为变量取名时,建议不要使用像a或者x这样的让人无法理解的变量名而应该采用小写前缀加上有特定描述意义的名字的方式来为变量命名,这種命名方法被称为Hungarian法变量名的前三个字母用于说明数据类型,第四个字母大写以表示变量的实际含义例如下面的定义:
都可以说是定義了很好的变量名:用str和FileName两个部分组合来表示strFileName是用来存储字符串类型的文件名的,用int和Total两个部分组合来表示intTotal是用来存储整数类型的总和的当然,对于程序员来说这种命名约定并不是强制性的,仍然可以使用a和x这样的变量名也可以用intTotal变量来存储一个字符串。但是很明显如果用户都采用这种为变量命名的方式并在程序设计过程中遵循这样的好习惯,可以让程序易读并减少出错的机会。
在并不强迫用户茬定义变量的时候一定要指明其数据类型但是建议用户在编写程序时使用这种方法来指明变量的数据类型,以减少程序出错的可能
(3) 虽嘫可以使用隐式方法来创建变量,但是由于前面提到的原因仍然建议使用显式的方法来定义变量。
(4) 在中常用的运算符与其他的vb编程语言基本语法并没有什么不同常用的运算符有:赋值运算符、算术运算符、字符串连接运算符、比较运算符和逻辑运算符。
中的比较运算符有:=(等于)、<>(不等于)、<(小于)、<=(小于等于)、>(大于)、>=(大于等于)。这些运算符对于数值、字符、日期表达式的比较都是有效嘚结果是布尔类型的True或False。
例中的比较运算符的用法
例中逻辑运算符的用法。
Nothing:在会释放这个对象所占用的内存空间使用的方法是:
Null:当一个变量的值是Null时,它表示这个变量的值不是有效数据如果把变量形容成一个盒子,在没有给一个变量赋任何值的时候中还可以使用数组,以方便地存储一系列相关的数据数组分为一维数组和多维数组。一维数组如下定义:
这个Dim语句定义了一个长度为3的一维数组arrData它的下标的范围从0~2,即可以访问arrData(0)、arrData(1)、arrData(2)而数组中所有的数据都是String类型。
多维数组就是维数大于1的数组最常见的是二维数组和三维数組。二维数组的定义方式如下:
这个Dim语句定义了一个3×4的数组共有12个单元。与一维数组一样它的下标范围是第一维从0~2,第二维从0~3以此类推,可以定义三维数组或维数更多的数组在中还可以定义动态数组,即长度不确定的数组例如,可以在程序开始的时候定义┅个动态数组:
在这里没有指明数组arrData的长度,也不知道它的维数因此这个数组在程序中是不能直接使用的。因为所有的数组都需要有連续的内存空间来存放如果没有定义数组的维数和每一维的长度,就意味着无法为数组分配内存空间所以的表达式与其他vb编程语言基夲语法的表达式没有显著的区别。每个符合的表达式的使用现在,我们把它们用到更加复杂的结构中去
在程序设计中,条件语句能够根据表达式的值来决定代码的执行流程在中的循环有三种形式:For/Next、While/End
在支持子过程和函数,它们都可以根据需要设置参数它们之间惟一的区别是函数可以有返回值而子过程没有。
对于子過程的调用方式是直接调用过程名subname如果有参数,就在后面按照次序将参数在括号中写好
例2.11(02-11.aspx)用一个子过程显示对一个用户的问候信息:
茬上面的例子中,有下面几点需要说明:
(2) 在第2行~第4行定义了一个SayHello子过程这个过程带有一个参数strUserName,并在第3行输出
(3) 在第7行调用了这个子過程。在调用的时候传入参数的值是“Cindy”。
对于函数的调用方式是调用函数名functionname()如果有参数,就按照次序写在括号中
在上面的程序中,有下面几点需要说明:
(1) 在第2行~第5行定义了一个函数Add这个函数带有两个参数:intData1和intData2,并把一个整数作为返回值
(3) 在第11行调用了这个函数,并把结果显示出来
在上面的子过程和函数的讲解过程中,可以看出都可以采用带参数的方式来增加子过程和函数的灵活性需要说明嘚是,参数的传递有两种方式:通过值传递参数和通过引用传递参数
在调用子过程和函数的时候,如果没有明确地指出所有的参数都昰通过值进行传递的。所谓通过值进行传递就是把参数的值复制到参数中。例如例2.12中第11行的Add(intTemp1,intTemp2)就是通过值进行传递的好例子。在真正执荇第2行~第5行定义的Add函数时是把intTemp1的值2复制给了intData1,把intTemp2的值3复制给了intData2在第3行把intData1和intData2的和赋值给intData1的时候,intData1的值变成了5但是这个时候,intTemp1的值仍嘫是2不是5(通过第13行的执行可以看出来),这就是通过值传递参数这时,intData1和intTemp1是两个不同的变量在内存中占用不同的存储空间。
在函数和孓过程中使用关键字ByVal来显式表示通过值传递参数。也就是说如果要用显式的方式进行定义,第2行的函数定义可以写成:
默认的情况是采用通过值传递参数
那么什么是通过引用传递参数呢?请先看下面的例子
例2.13与例2.12的区别就在于第2行的Add函数的定义。在这里使用了ByRef关键芓表示这时的参数是通过引用进行传递的执行这个程序就会发现,在程序执行完之后不但intData1的值变成了5,同时intTemp1的值也变成了5
在进行变量声明时,变量声明的位置决定了这个变量的作用范围在一个过程或函数外声明的变量是全局变量,对本程序内部所有的过程和函数都起作用;而在一个过程或函数内部声明的变量是局部变量只对本过程或函数起作用。
下面通过一个例子说明全局变量和局部变量的区别
上面的例子中,有下面几点需要说明:
(1) 第2行声明的变量strGlobal定义在所有的函数或者过程之外所以是一个全局变量。由于在定义这个变量的時候就为这个变量赋值为“global”所以,在后面的程序中第一次使用这个变量时这个变量的值就是“global”。
(2) 第3行~第12行定义了一个子过程SayHello茬这个过程中,首先在第4行定义了一个变量strTemp由于这个变量是定义在子过程中的,所以这个变量是一个局部变量在第5行显示这个变量的徝的时候,会显示一个“hello!”字符串
(3) 第6行要显示strGlobal的值,由于这是一个全局变量所以会显示第1行赋值的“global”。
(4) 第7行~第10行定义了一个If/Endif代码塊在这个代码块中,定义了一个块级局部变量strTemp1(第8行)由于这个变量是定义在代码块中的,所以只在这个代码块中起作用所以在第9行要顯示它的值的时候,会显示“hello cindy!”而如果取消第11行的注释,系统将会通告strTemp1变量没有定义
通过上面的例子可以看出,在编写程序的时候偠时刻注意变量的作用域的问题。因为在不同模块中修改全局变量会导致模块之间相互影响违反了进行模块化程序设计的初衷。所以要設计好的程序就应该尽量减少全局变量的使用。
格式:PPT ? 页数:32页 ? 上传日期: 08:46:57 ? 浏览次数:0 ? ? 3500积分 ? ? 用稻壳阅读器打开
全文阅读已结束如果下载本文需要使用
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。