VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > VB.net教程 >
  • vb.net教程之过程和函数

过程和函数

VB.NET支持子过程和函数,它们都可以根据需要设置参数。它们之间惟一的区别是函数可以有返回值而子过程没有。
子过程的定义方式为:
Sub  subname ([argument1[,…, argumentn]])
[statements]
End Sub
对于子过程的调用方式是直接调用过程名subname。如果有参数,就在后面按照次序将参数在括号中写好。
例2.11(11.aspx)用一个子过程显示对一个用户的问候信息:
1:   <script language="vb" runat="server">
2:   Sub SayHello(strUserName  as  String)
3:          Response.Write ("Hello!" & strUserName & "<br>")
4:   End Sub
5:   </script>
6:   <%
7:          SayHello("Cindy")
8:   %>
函数的定义方式为:
Function functionname ([argument1[,…, argumentn]])
[statements]
[Return value]
[statements]
End Function
对于函数的调用方式是调用函数名functionname()。如果有参数,就按照次序写在括号中。
例2.12(12.aspx)用一个函数计算两个整数的和。
1:   <script language="vb" runat="server">
2:   Function Add(intData1 as Integer,intData2 as Integer) as Integer
3:          intData1=intData1+intData2
4:          Return intData1
5:   End Function
6:   </script>
7:   <%
8:          Dim intTemp1,intTemp2 as Integer
9:          intTemp1=2
10:        intTemp2=3
11:        Response.Write(Add(intTemp1,intTemp2))
12:        Response.Write("<br>")
13:        Response.Write(intTemp1)
14: %>
在上面的子过程和函数的讲解过程中,可以看出都可以采用带参数的方式来增加子过程和函数的灵活性。需要说明的是,参数的传递有两种方式:通过值传递参数和通过引用传递参数。
在函数和子过程中,使用关键字ByVal来显式表示通过值传递参数。也就是说,如果要用显式的方式进行定义,第2行的函数定义可以写成:
Function Add(ByVal  intData1 as Integer, ByVal  intData2 as Integer)
默认的情况是采用通过值传递参数。
 
例2.13(13.aspx)用一个函数计算两个整数的和。
1:   <script language="vb" runat="server">
2:   Function Add(ByRef  intData1 as Integer,ByRef intData2 as Integer) as Integer
3:          intData1=intData1+intData2
4:          Return intData1
5:   End Function
6:   </script>
7:   <%
8:          Dim intTemp1,intTemp2 as Integer
9:          intTemp1=2
10:        intTemp2=3
11:        Response.Write(Add(intTemp1,intTemp2))
12:        Response.Write("<br>")
13:        Response.Write(intTemp1)
14: %>
在这里使用了ByRef关键字表示这时的参数是通过引用进行传递的。执行这个程序就会发现,在程序执行完之后,不但intData1的值变成了5,同时intTemp1的值也变成了5。通过引用传递参数的方法是把参数的地址传递进去。

2.5.3  变量的作用域

在进行变量声明时,变量声明的位置决定了这个变量的作用范围。在一个过程或函数外声明的变量是全局变量,对本程序内部所有的过程和函数都起作用;而在一个过程或函数内部声明的变量是局部变量,只对本过程或函数起作用。
下面通过一个例子说明全局变量和局部变量的区别。
例2.14(14.aspx)全局变量和局部变量的使用。
1:   <script language="vb" runat="server">
2:      Dim strGlobal as String="global"
3:   Sub SayHello
4:          Dim strTemp as String="hello!"
5:          Response.Write (strTemp & "<br>")
6:          Response.Write (strGlobal & "<br>")
7:          if strGlobal<>"" then
8:                 Dim strTemp1 as String="hello cindy!"
9:                 Response.Write (strTemp1 & "<br>")
10:        end if
11:          Response.Write (strTemp1 & "<br>") //错误
12: End Sub
13: </script>
14: <%
15:        SayHello
16: %>
通过上面的例子可以看出,在编写程序的时候,要时刻注意变量的作用域的问题。因为在不同模块中修改全局变量会导致模块之间相互影响,所以要设计好的程序,就应该尽量减少全局变量的使用。
 
 
26 常用函数
1)数学函数
Abs(-7) 绝对值
atan(1) 反正切值
cos(4.5) 余玄值
exp(3) E的幂
int(4.8) 取整数部分
log(10) 返回自然对数值
randomize()初始化随机数生成器
ren()返回一个随机数
sqrt() 返回开方值
 
2)字符串处理函数
   Len(“vb.net”) 返回字符串长度
   Left(“good”,2) 从左取指定长度的字符串
Right(“good”,2) 从右开始取字符串
   Trim() 去字符串首尾空格,Ltrim()去字符串头部空格  Rtrim()去字符串尾部空格
   Instr(s1,s2) 返回字串s1在s2第一次出现的位置,
   replace(s1,n,m,s2)取s1指定位置的指定长度的字串被s2替换
   str(n) 将数值转换为字符串
   strcomp(s1,s2) 比较两个字符串的大小
 
3)时间日期函数
  Day() 返回任一个日期值 1-31
  Month()返回月份
  Year() 返回年份
  Weekday() 返回星期值 1-7
  Hour()返回小时数
  Minute()返回分
  Second()返回秒
  Now() 当前日期时间
  Timeofday() 当前时间
  Today() 当前日期
  Timer() 返回从0:00开始计数的秒数
 
4)其他函数
  isArray() 是否为数组
  isDate() 是否是有效的日期
 
 
补充:类型转换函数:
Cbool:字符型转换成布尔型
Cshort
Cint
Clong
Cdbl
Cchar
Cstr
Cdec
Cobj
Cdate
注释:’ ,rem,
续行:空格+_   label1.text=”你好”& _
               “<font>欢迎”
多条语句分隔:a=b: b=c: c=a
 

2.7 习题

1. 编写程序,尝试使用动态数组。
2. 编写一个函数用于计算两个整数的积,用通过引用传递参数的方法返回计算结果。
 

相关教程