3.1 常量html
3.1.1 什么是常量编程
在编程中,经常能够遇到变量和常量。顾名思义,变量就是值能够改变的量,常量是其值不可改变的量。数组
不能够改变的量有什么用呢?事实上,在实际编程中,常量用得不多。甚至能够用变量代替常量,固然这样作的代价是下降了程序的性能。编程语言
事实上,常量有不少用处。例如圆周率,若是每次须要用到的时候都把它输入一遍,效率(这里指编程效率而非执行效率)是很低的。若是把圆周率定义为一个常量,那么每次须要用到的时候,只要输入常量名就能够了。函数
3.1.2 关键字Const性能
这里首先讲解下什么是关键字。在任何一种编程语言中,都定义着那么一些关键字,这些关键字有特殊的含义,例如Function就是VB.net中的一个关键字(VB.net中不区分大小写),其功能就是定义一个函数。你不能将关键字用于你的常量、变量或者是函数的名字。其中用于定义常量的关键字是Const,Const的用法是:学习
Const 常量名 As 常量类型=常量值测试
值得一提的是,As也是关键字,它一般用于常量和变量的定义以后,用来指明所定义的类型。不过它不是必须的,省略As的状况将在后面讨论。url
后面的常量值是必须的,一个常量的值必须在定义时指定,而变量的值就能够之后再指定。与此同时,指定了常量值以后,就不能再修改了。spa
常量名不是乱取的,首先它不能是关键字(例如不能是Function,也不能是function)。而后,它能够由阿拉伯数字、大小写字母、下划线组成,可是不能够以数字开头。
例如这个常量名是合法的:
Str123_
而这个是不合法的:
0Str123_
常量名还能够如下划线开头:
_Str123
上面讲的是常量名命名规则,是硬性规定,除此以外,还有一些约定俗成的规则。例如常量名通常都用大写等等,这些不是必须的,可是能够提升你代码的可读性。这里不做详细介绍,由于相关的命名规则太多。
常量名的命名规则就讲述到这里,如今要讲讲常量类型了。
常量类型其实和变量类型是同样的,常量类型有不少,你还能够本身定义一个类型。可是咱们必须先了解经常使用常量类型。
3.1.3 经常使用常量类型
经常使用的常量类型有字符串、整数和浮点数,下面来一一介绍:
String:字符串,长度没有限制。
Integer:整数,其取值范围为-2147483648~2147483647。
Long:长整数,取值范围比Integer广,为-9223372036854775808~9223372036854775807。
Double:浮点数,其取值范围为-1.79769313486232E+308~1.79769313486232E+308,能精确到小数点后15位。
以上是经常使用的几个数据类型,请读者务必牢记。至于字符串String,咱们在上一章的学习中就已经接触过,知道String的值要用双引号括起来。
3.1.4 常量的定义
了解了几个经常使用的数据类型以后,咱们来学习常量的定义。常量的定义要用到上面讲过的Const关键字,至于定义的格式也已经介绍过了:
Const 常量名 As 常量类型=常量值
接下来咱们就定义一个字符串常量,取名为HW,内容为“Hello World”。根据前面的知识,它的数据类型应该是String,然后面的常量值应该用英文双引号括起来。因此完整的定义应该是:
Const HW As String = "Hello World"
又或者,定义一个整数常量,表示一MB中的字节数:
Const MB As Integer = 1048576
再来,定义一个浮点数常量,表示圆周率的前10位:
Const PI As Double = 3.1415926535
举了3个例子,相信读者已经掌握了常量定义的规律了。
3.1.5 常量的使用
定义了一个常量以后,当时是使用了。使用一个常量很简单,只须要直接输入这个常量的名称就能够了。例如:
Const HW As String = "Hello World"
MsgBox(HW)
上面的这两行代码中,第一行定义了一个常量HW,第二行调用库函数MsgBox输出了HW包含的内容。上面这两句代码等效于下面这一句:
MsgBox("Hello World")
可见,常量的使用就是简单的输入常量的名字。经过上述例子,相信读者已经掌握了常量的使用方法,那么常量的定义及使用的介绍就到这里。接下来让咱们开始学习变量。
3.2 变量
3.2.1 什么是变量
上面已经说过,变量就是其值能够改变的量。程序中用得最多的就是变量,它能够用来记录程序目前的执行情况,装载用户输入的数据等等。总之变量的用途不少,这里不一一介绍,等到实际编程中,读者天然能体会到。
3.2.2 关键字Dim
上一节中,咱们介绍了定义常量的关键字Const,那么定义变量天然也有它的关键字,就是Dim了(事实上,定义变量还有不少方法,Dim只是用来定义局部变量,全局变量将在后面讨论)。Dim的用法是:
Dim 变量名 As 变量类型
Dim的用法和Const的用法几乎是同样的,不一样点在于,Dim定义的变量能够不赋初始值。这就分两种状况了,一种是有初始值的:
Dim 变量名 As 变量类型=变量初始值
另外一种是没有初始值的,因为变量能够在任什么时候候赋值,因此没有初始值是容许的。这种状况就是:
Dim 变量名 As 变量类型
变量名=变量值
上面的第二句是变量赋值。
3.2.3 布尔类型
以前介绍常量数据类型的时候,只说了整数(和长整数)、字符串和浮点数。这里引入一个新的经常使用类型布尔。布尔,即Boolean,在一些语言中将其缩写为bool,甚至没有布尔类型。其实布尔类型很简单,就两个取值:True和False,True表示真,False表示假。通常用来设置窗体及空间的可见性、可用性等,还能够用来做为函数的返回值表示执行的结果(通常用True表示成功,False表示失败)。其实布尔值也就是一个整数,True为1,False为0。在一些语言中,甚至直接用整数变量代替布尔。
3.2.4 变量的定义
上面已经讲到,定义变量要用关键字Dim。经过上面常量定义的学习,相信读者能看懂下面三句代码:
Dim MyName As String
Dim MyAge As Integer
Dim Succeed As Boolean
上面三行分别定义了一个字符串变量MyName、一个整数变量MyAge和一个布尔变量Succeed。
上面咱们说过,在使用Dim定义局部变量的时候,有两种作法。能够只定义而不赋值,或者在定义的同时赋值,例如:
Dim Succeed As Boolean = True
这是在定义的同时赋值,还有另外一种,不赋初值。
为何要单独拿出来讲呢?由于在不赋初值的时候,能够同时定义多个变量。例如:
Dim Str1, Str2 As String
这样写等效于:
Dim Str1 As String
Dim Str2 As String
也就是说,在不赋初值的时候,若是有多个相同类型的变量须要定义,则能够在同一行中定义。定义时,多个变量名之间用逗号隔开便可。常量不能够用这样的方法定义,由于常量必须赋初值。
可见变量的定义和常量的定义是差很少的,不一样点在于在不赋初值的时候能够同时定义多个一样类型的变量,相信读者能理解,这里就很少做介绍了。
3.2.5 变量的使用
变量的使用跟常量的使用同样,都是直接输入变量名。例如:
Dim MyName As String
MyName = "X.TK"
MsgBox(MyName)
上面的第一句是变量的定义,第二句是变量的赋值,第三句把MyName用做MsgBox的参数。其中第二第三句都是变量的使用,可见和常量使用没有太大区别。不过常量定义后不能赋值而变量能够,接下来详细讲述变量的赋值。
3.2.6 变量的赋值
变量的赋值很简单,就是用一个等号链接变量跟表达式。这里的等号并非相等的意思,而是把右边的值赋予左边的意思。
变量赋值的格式:
变量名=表达式
以前的介绍中,笔者写的是“变量名=变量值”。事实上,在变量的赋值上,右侧能够是一个表达式。表达式是由运算符和操做数组成的,至关于一个算式。在下一节中,笔者将详细讲述运算符和表达式。
3.3 运算符和表达式
3.3.1 运算符
VB.net中的运算符有五个,它们是加、减、乘、除、幂,符号分别是+、-、*、/、^。
用法就很简单了,至少前三个是没问题的。除法的写法是被除数在前,除数在后,幂的写法是底数在前,指数在后,也都很简单。至于运算顺序,是按照数学上的,也就是幂的优先级最高,而后是乘除,而后是加减。固然你能够加上圆括号来改变运算顺序,圆括号能够无限嵌套。
另外须要补充一点,就是字符串之间也能够用加号链接。注意是字符串之间,若是把字符串和整数等其余类型用加号链接,执行时会发生错误。
字符串用加号链接,至关于把它们链接起来,例如:
Dim Str As String
Str = "Hello" + "World"
代码执行后,Str的值为“HelloWorld”。
3.3.2 表达式
表达式其实就是算式,不过它的操做对象并不止数字这么简单,还包括任意一个变量或常量。
下面是一个合法的表达式:
((3 + 4) * 5 - 8 / 3) ^ 5
相信你们均可以看懂,就很少说废话了。而后是含变量的表达式,其实变量跟数都是同样的写法,例以下面的代码也是合法的:
Dim xInt As Integer
xInt = 1 + 2 + 3 + 4 + 5
xInt = 1 + 2 + 3 + 4 + 5 + xInt
上面的代码中,第一行第一了一个名为xInt的整数变量。第二行代码给xInt赋值,右侧的表达式运算结果为15,xInt的值为15。第三行代码中,xInt也做为表达式的一部分,第三行代码执行时,先计算右边的表达式,表达式的值为30,再赋予左边的变量xInt。所以三句代码执行完毕以后,xInt的值为30。
3.4 过程
3.4.1 什么是过程
在上一章中,咱们省略了对过程的详细讲述,如今是时候来学习过程了。
过程是一段没有返回值的代码,也称方法,用于实现某些特定功能,能够理解为子程序,它能够包含参数列表。由过程名、参数列表和代码段组成。
3.4.2 关键字Sub
在上一章的最后一个实例中,咱们在双击Form1以后,看到了这样的代码:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
当时笔者只是说,程序会在展现窗子以前执行中间的代码。可是实际上,这是一个用来处理窗体Load事件的过程。对于事件,如今还不须要了解,等到后面的章节会详细介绍。以前说过,Function是函数,Sub是过程。事实上,Sub也是一个关键字,它用于定义一个过程。上面的代码中还有一个关键字Private,Private的中文意思是“私有的”,它表示这个过程只能在Form1内部访问。这涉及到过程的可见性级别,会在之后介绍,这里能够省略Private关键字。
Sub的用法是:
Sub 过程名(参数1,参数2……)
代码段
End Sub
上面的格式用于定义一个过程,最后一句代码中的End也是一个关键字。它的用法不少,其中一种就是在一个空格以后接另外一个关键字,标记某段代码的结束。上面的End Sub就是这种用法,Sub和End Sub组成一对,中间的就是实现功能的过程代码。
3.4.3 过程的定义
上面讲到,过程的定义须要用Sub关键字。过程的参数列表不是必须的,可是后面的圆括号是必须的。
所以,一个最简单的函数定义以下:
Sub MyFirstSub()
End Sub
这个函数是空的,可是同样能够调用,只不过调用没有任何的效果罢了(事实上,计算机内部仍是会进行入栈出栈等一系列操做)。
接下来咱们给它加上一行代码,用来输出一串字符。整个过程的定义就变成了:
Sub MyFirstSub()
MsgBox("This is my first sub.")
End Sub
这样,在调用这个过程的时候,就会弹出一个消息框了。
可是这样的过程仍是不够灵活,每次调用出来的消息框都是同样的,要想改变内容,就要改变过程的定义。用什么方法解决呢?固然是参数了,参数就写在过程名后面的圆括号里。
3.4.4 参数列表
其实咱们以前已经接触过参数列表了,就是在库函数MsgBox中,第一个参数就是消息框中间显示的字符串,如今咱们来学习本身定义参数列表。
再次看这段代码:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
End Sub
咱们说过,圆括号里面的就是参数列表:
ByVal sender As System.Object, ByVal e As System.EventArgs
中间有一个逗号,显然这是两个参数,咱们来看第一个参数:
ByVal sender As System.Object
首先是第一个关键字ByVal,它表示参数是按值传送的,在过程或函数中对它进行的修改并不会在过程或函数结束后产生影响。换句话说,参数前面有ByVal关键字的话,当这个参数是用变量进行传送时,参数在过程或函数里面能够修改,可是并不影响这个变量自己的值。除了ByVal外,还有ByRef,将在下一小节详细介绍它们的区别。
上面的sender很明显就是参数名了。而后是咱们早就遇到过的As关键字,咱们知道,它一般用于指定前面的操做对象的数据类型。这里的意思是,传来的参数sender的数据类型必须是System.Object,这个类型咱们还没接触过,先无论。
通常来讲,定义一个参数的格式:
ByVal 参数名 As 数据类型
函数或过程的执行中,能够将参数看成变量来用,用法是直接输入参数名。
让咱们来写一个用来弹出消息框的过程,首先须要一个参数,表示要输出的内容:
ByVal msg As String
整个过程的定义就是:
Sub MyFirstSub(ByVal msg As String)
MsgBox(msg)
End Sub
可见在过程当中使用参数的方法就是直接输入参数名。虽然上面这个过程并无什么意义,由于咱们彻底能够直接调用MsgBox函数。不过当代码多起来的时候,过程就显得至关重要了。
3.4.5 参数的传递方式
上面说过,参数有两种传递方式,一种是ByVal,一种是ByRef。前一种ByVal指参数按值传递,后一种ByRef指参数按地址传递。若是传入的参数是简单的一个值,那么二者并无区别。可是若是传入的是一个变量的话,后一种方式ByRef将会保存在函数或过程当中对其做出的全部更改。
也就是说,ByRef是把整个变量传递过去,而ByVal只是把变量的值提取出来,再进行传递。
关于这二者的区别,将在章末的实例中用实验加以验证。
3.4.6 过程的调用
例如,一个过程定义以下:
Sub MyFirstSub(ByRef msg As String)
MsgBox(msg)
End Sub
对于它的调用,咱们以前已经说过,直接输入过程名,而后带一对圆括号,若是有参数,就在圆括号里输入要传递的参数。
因此,调用上面的过程应该是这样:
MyFirstSub("This is my first sub.")
这是传递了一个值。又或者,能够传递一个变量:
Dim Str As String = "This is my first sub."
MyFirstSub(Str)
这两种调用的效果是同样的。因为过程没有返回值,没有函数复杂,可是有了过程的基础,相信学习函数是很是简单的。
3.5 函数
3.5.1 什么是函数
笼统地讲,函数就是有返回值的过程。至于什么是返回值,咱们已经讲过,它至关于数学上函数的函数值。
3.5.2 关键字Function
函数的定义要用到关键字Function,和过程的定义大同小异:
Function 函数名(参数1,参数2……) As 返回值数据类型
代码段
End Function
和过程相比,除了把Sub换成了Function以外,还多了一个As关键字,指的是返回值的数据类型。在执行功能的函数中,返回值每每是Boolean,用来指示执行是否成功。
3.5.3 关键字Return
Return,顾名思义,就是返回,用在函数或者过程当中。也许读者有疑问,过程没有返回值,为何能用Return?事实上,Return并不只仅用于返回一个值,它有两个用法。
第一个用法是直接打一个Return:
Return
这种用法只能出如今过程当中,一旦执行到这一句代码,立刻退出过程,回到调用该过程的位置继续执行。
另外一种用法是:
Return 返回值表达式
这种用法用在Function中,程序遇到这一句代码,也会退出函数。不过在退出以前,先计算右侧的返回值表达式,把表达式的值做为返回值。而后退出函数,回到调用该函数的地方,给出返回值,继续执行。
函数中只能使用第二种,可是不用Return也是合法的,不过可能会形成程序异常。在编译的时候会给出警告,可是依然能够经过编译。
3.5.4 函数的定义
上面提到定义函数用的是关键字Function,返回值用关键字Return。下面定义一个用于计算两数之和的函数:
Function AddFun(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
上面定义的这个函数有两个参数,有了前面的知识,相信你们看懂这个是没有问题的。下面来复习一下上面的内容,让咱们来定义一个函数,至关于数学中的f(x)=x^2+3x+5:
Function f(ByVal x As Integer) As Integer
Return x ^ 2 + 3 * x + 5
End Function
这很简单,相信读者都能作到,只是要注意3x中间要加一个星号,表示乘法。
3.5.5 函数的调用
函数的调用和过程的调用是一致的,只不过由于返回值的缘由,函数调用自己能够做为一个表达式。
例如,有函数定义以下:
Function AddFun(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
那么,如下代码是合法的:
Dim ret As Integer
ret = AddFun(10, 2)
上面这段代码中,第一行定义了一个整数变量用来储存函数的返回值。第二行调用了函数,在执行第二行代码的时候,程序先到AddFun处执行代码,获得返回值12,而后将12赋给ret变量。也就是说,AddFun(10,2)这个调用自己就是一个值。
所以,下面的代码也是能够的:
Dim ret As Integer
ret = AddFun(10, 2) + 5
执行以后,ret的值为17。
这一章一口气讲了常量、变量、表达式、过程和函数,知识量有点大,这是笔者尽可能在避免的。不过知识老是要学的,有的教材在这一章就把后面的知识都讲了,读者每每要反复看好多遍才懂。不过笔者认为最好的学习状态是在一页一页看得很顺的时候,一旦返回前面去看,学习的热情就很低了。所以对于事件、类等等更为复杂的知识,笔者选择在后面的章节中讲述。在下一章中,笔者将为读者介绍几种程序结构类型,它们是顺序结构、选择结构和循环结构。不过在本章的最后一节中,笔者将作一个实例,以巩固本章的内容。
对于本书的实例,若是有条件实际操做,读者最好能够本身输入代码,本身调试程序。若是只看教程不实操的话,再好的教材也是没用的。由于到后面的知识是愈来愈难,若是前面的基础知识不巩固,后面是很难看懂的。
因为不少读者喜欢一口气看几章的教程,再上机操做,笔者特地把学习的过程拉长,目的就是让初学者更好地掌握知识。若是在书里遇到实在没有办法解决的问题,欢迎联系笔者。
3.6 用实例巩固知识
3.6.1 建立项目
笔者在看书时,遇到相似这样的实例,也喜欢只看书上的运行结果,看完就算了。事实上,上机操做和只是看看书的差异很大。也是由于这样,笔者看了不少书都没有学会一门语言,望各位读者引觉得戒。
启动Visual Studio,新建一个Windows窗体应用程序(Visual Sutdio 2005中为“Windows 应用程序”),命名为“App03”。
往窗体上添加三个Button控件,自动命名为Button一、Button二、Button3。
3.6.2 为程序添加代码
双击Button1,来到代码界面,看到以下的代码:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.Click
End Sub
End Class
这部分代码跟咱们以前见过的很像,以前的那个过程是Form1_Load,就是在Form1加载过程当中执行的代码。而这个是Button1_Click,从名字上看,是Button1被点击时执行的代码段。
咱们定义函数和过程,必须在Class和End Class关键字的里面,不过也不能在一个过程里面定义过程,过程或函数之间应该是分开的,不能重叠。例如定义一个AddFun,完整的代码就是:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.Click
End Sub
Function AddFun(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
把调用的代码放在Button1_Click过程当中,由于点击按钮时就会执行里面的代码。完整的代码以下:
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.Click
Dim ret As Integer = AddFun(3, 4)
MsgBox(ret)
End Sub
Function AddFun(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
End Class
按F5,生成成功后,出现Form1,点击按钮,弹出消息框如图:
也许读者对这两行代码会有疑问:
Dim ret As Integer = AddFun(3, 4)
MsgBox(ret)
上面这两行代码中,第一行定义了一个整数变量ret,并赋初始值AddFun(3,4),也就是7,这应该没有问题。可是在第二行中,咱们以前说过,MsgBox的第一个参数是字符串,也就是String。可是ret是Integer,为何能放进MsgBox中呢,并且编译过程尚未警告。
事实上,这涉及到数据格式间的隐形转换,在后面的章节中咱们会讨论这个问题。如今读者只须要知道,直接把整数甚至浮点数放在MsgBox中做为参数是能够的,由于程序会自动将它转换成字符串。
上面咱们提到过参数有两种传递方式,分别是ByVal和ByRef,下面定义一个用于测试的过程:
Sub SubTest(ByVal a As String, ByRef b As String)
a = "Changed"
b = "Changed"
End Sub
上面这个过程有两个参数,第一个是ByVal按值传递,第二个ByRef是按地址传递。按照咱们的设想,当传入两个变量做为参数的时候,第二个变量应该会被改成“Changed”。其实在过程代码执行的时候,这些修改都是有效的,只不过ByVal的参数的修改是对于一个值,而ByRef的参数修改则是对于传入的变量。所以ByVal的参数修改会在过程结束后丢失,而ByRef的能够保存。
双击Button2,在Button2_Click过程当中输入以下代码:
Dim Str1, Str2 As String
Str1 = "Not Changed"
Str2 = "Not Changed"
第一句代码定义了两个String变量Str1和Str2,并在第二第三句中将它们的值都赋为“Not Changed”。若是将这两个变量做为参数传入过程SubTest,后一个参数应该会变为“Changed”,是否真的是这样呢?在上面的三句变量后面再加上:
SubTest(Str1, Str2)
MsgBox(Str1 + Str2)
这里的第一句把Str1和Str2做为参数传递给SubTest,在SubTest中对它们做了从新的赋值。第二句把Str1和Str2链接起来并输出。按F5编译,在点击Button2的时候出现了如图的消息框:
可见,在执行SubTest以后,Str1的值仍然是“Not Changed”,而Str2的值改成了“Changed”,和咱们的预想是同样的。
接下来让咱们复习一下常量,为何放在最后呢?由于常量的使用是不多的,读者只须要有常量的概念便可。
在开始以前,先来看看刚才写的Button2_Click过程:
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim Str1, Str2 As String
Str1 = "Not Changed"
Str2 = "Not Changed"
SubTest(Str1, Str2)
MsgBox(Str1 + Str2)
End Sub
这里定义了两个变量,Str1和Str2。咱们以前说过,Dim定义的是局部变量,实际上这个说法是不许确的。Dim定义的变量,若是放在过程或函数的外面,就是全局变量。只不过若是定义的是局部变量,就只能使用Dim。
若是读者对于局部变量和全局变量没有概念,笔者在这里做一个解释。局部变量是定义在函数或者过程当中的,在执行过程当中分配内存,执行完这个函数或者过程以后,内存就被释放。换句话说,别的函数或过程是访问不了它的,只能在定义它的代码段中访问。
而全局变量是定义在Class中,Sub或Function外的,按照笔者的习惯,它们通常写在程序的第二行代码处。写在Sub或Function外的变量或者常量,能够被本Class中全部Sub或Function访问,并且对于变量,在函数或过程结束后仍然保留对它的修改。
如今让咱们定义一个全局常量,在Public Class Form1以后空出一行,写入以下代码:
Const PI As Double = 3.141592653
能够看见全局常量和局部常量的定义是彻底同样的,不一样点只在于写的位置。
因为PI是全局常量,它能够在任意一个函数或过程当中访问了。
双击Button3,生成Button3_Click过程。在Button3_Click过程当中键入以下代码:
Dim r As Double = 5
MsgBox(PI * r * r)
这里的代码,第一行定义了一个浮点数r,并赋初值5,用于表示圆的半径。第二行代码计算了圆的面积,圆周率正是使用了全局常量PI。
按F5运行,点击Button3,弹出的消息框如图:
输出的结果就是半径为5的圆的面积。
做为本章的实例,有些零散地复习了本章的内容。若是读者有疑问,请在进入下一章的学习以前把这些内容搞懂。下一章咱们将开始学习程序的流程控制,也就是咱们经常据说的If结构、For结构等等。这些知识远比本章的复杂,须要记忆的内容比较多,不过在熟练使用以后,就不存在记忆的问题了。
下面贴出本实例App03的所有代码:
Public Class Form1
Const PI As Double = 3.141592653
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton1.Click
Dim ret As Integer = AddFun(3, 4)
MsgBox(ret)
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton2.Click
Dim Str1, Str2 As String
Str1 = "Not Changed"
Str2 = "Not Changed"
SubTest(Str1, Str2)
MsgBox(Str1 + Str2)
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesButton3.Click
Dim r As Double = 5
MsgBox(PI * r * r)
End Sub
Function AddFun(ByVal a As Integer, ByVal b As Integer) As Integer
Return a + b
End Function
Sub SubTest(ByVal a As String, ByRef b As String)
a = "Changed"
b = "Changed"
End Sub
End Class
上面的代码中,按照笔者的习惯,全局变量及常量是放在第一行后面的,这样写能够方便查阅。固然读者能够按照本身的习惯写,可是务必要工整,这样的代码可读性才高。
本实例App03的下载地址:
但愿读者能本身写一次这个实例,若是能不看书写出来,说明这章的知识你已经巩固了。确认你掌握了本章的知识以后,赶快进入下一章的学习吧。