VB.net入门(4):函数,过程

C和java里面就没有所谓函数和过程的区分:它们都是函数。在我的理解中,函数和过程的区别仅在于函数有返回值,而过程没有。

过程的定义是这样的:
sub MySub()
end sub

函数要有返回值,所以定义的时候要说明返回值的类型。函数的定义是这样的:
function MyFunction() as Object 'as子句标明了函数返回值的类型
end function

过程和函数可以带参数。比如下面这个过程:
public sub AddOne( Byval n as Integer ) 'n是传入的参数,函数当中可以对n进行操作。
Console.WriteLine(n + 1)
end sub

调用这个过程的时候直接写:
AddOne(3)
就可以了。

完整的代码如下,你可以运行一下:
imports System

public module MyModule
sub Main
AddOne(3) '这里调用函数AddOne并传入一个参数3
Console.ReadLine
end sub

public sub AddOne(Byval n as Integer) '这里是函数AddOne的定义
Console.WriteLine(n + 1)
end sub
end module

函数是有返回值的。我们写一个函数,传入一个整数,函数返回这个数的加二。例如给它3,它返回5。
public function AddTwo(Byval n as Integer) as Integer
return n + 2 'return后面的表达式就是这个函数要返回的东西
end function

因为他返回一个整数,所以我们可以象使用整数一样使用这个函数。完整的使用这个函数代码如下:
imports System

public module MyModule
sub Main
Console.WriteLine( AddTwo(3) ) '这里使用函数AddTwo
Console.ReadLine
end sub

public function AddTwo(Byval n as Integer) as Integer
return n + 2
end function
end module

像前面“输入输出”一章的那个加法例子,我们可以这样写:
imports System

public module MainModule
public sub Main()
dim i, j as integer
i = ReadNumber("第一个数:")
j = ReadNumber("第二个数:")
Console.WriteLine("{0}:{1}", "结果是", i + j)
Console.Read
end sub

public function ReadNumber (Byval Message as String) as Integer
Console.WriteLine(Message)
return cint(Console.Readline)
end function
end Module

这样,main函数看起来简洁多了。

Published At
Categories with Web编程
Tagged with
comments powered by Disqus