Function语句
声明Function过程的名称、参数以及构成其主体的代码。
[Public[Default]|Private]Functionname[(
arglist
)]
[statements]
[name=expression]
[ExitFunction]
[statements]
[name=expression]
EndFunction参数
Public
表示Function过程可被所有脚本中的所有其他过程访问。
Default
只与Class块中的Public关键字一起使用来表示Function过程是类的默认方法。如果在一个类中指定了不止一个Default过程,就有错误发生。
Private
表示Function过程只可被声明它的脚本中的其他过程访问或者如果函数是一个数据类,那么Function过程只能被该类中的其他过程访问。
name
Function的名称,遵循标准的变量命名规则。
arglist
代表调用时要传递给Function过程的参数的变量列表。用逗号隔开多个变量。
statements
在Function过程的主体中执行的任意语句组。
expression
Function的返回值。
arglist参数包含下列语法和部分:
[ByVal|ByRef]varname[()]
参数
ByVal
表示该参数是按值方式传递的。
ByRef
表示该参数按引用方式传递。
varname
代表参数变量的名称;遵循标准的变量命名规则。
说明
如没有显式指定使用Public或Private,则Function过程默认为公用,即它们对于脚本中的所有其他过程是可见的。Function中局部变量的值在对过程的调用中不被保留。
不能在任何其他过程(例如,Sub或PropertyGet)中定义Function过程。
使用ExitFunction语句可以从Function过程中立即退出。程序继续执行调用Function过程的语句之后的语句。可在Function过程的任何位置出现任意个ExitFunction语句。
与Sub过程类似,Function过程是可以获取参数、执行一系列语句并改变其参数值的独立过程。与Sub过程的不同之处是:当要使用由函数返回的值时,可以在表达式的右边使用Function过程,这与内部函数的使用方式一样,例如Sqr、Cos或Chr。
在表达式中,可以通过使用函数名,并在其后用圆括号给出相应的参数列表来调用Function过程。有关调用Function过程的详细信息,请参阅Call语句。
警告Function过程可以是递归的,即该过程可以调用自身以完成某个给定的任务。但是,递归可能会导致堆栈溢出。