VB 中Sub和Function的区别

Sub可以理解为执行一个过车,一个操作。

Function在执行完过后,还要返回一个结果。

Sub:过程;Function:函数,可以带返回值。

语法:

Sub SubName(参数1,参数2,...)

...

End Sub

Function FunctionName(参数1,参数2,...)

...

FunctionName=返回值

End Function

调用时:

Sub 只能用: SubName(参数1,参数2,...) 变量=FunctionName(参数1,参数2,...)

以上均未讲出根本:

Sub与Function均可以有返回值。所以首先要讲清楚返回方式:有两种,过程或函数返回,即分配与过程或函数同名的返回变量地址。Function分配,但Sub不分配。VB有此方式加以区分,VC则用void声明不用分配。即如p=aa(),若aa()时sub则什么也的不懂,还会报错。但函数则会得到相应的数值。其次,参数返回,VB中缺省用地址传参,即能返回。但声明为BYVAL即值传参,则不可返回,所以,不存在灵活性的差别。比如函数function bb(a,b),

调用时可以bb m, n也可以p=bb(m,n).

实际,如果确认不会失败,才能用SUB,否则,必须要用FUNCTION以确认是否成功或取得返回值。所以编程,应少用SUB,少用 SubName 参数1,

参数2,...的调用方式。

sub是过程不需要返回值,function是函数,需要返回值,如下:

Function

NameOfFunction(parameter1, parameter2)

'some code

NameOfFunction = return

value

End Function

________________________________________________

Sub

NameOfSubRoutine(parameter1, parameter2)

'some code...

End Sub