Function 和 Sub到底有什么区别

okay2003 2005-09-03 11:36:27
在看一些例子时经常会使用Sub 和Function的地方,但是自己在编写程序时发现这两者有相同的特点,如可以使用参数,可以在程序任何地方调用等等。请问这两者到底有什么区别么?
...全文
198 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
okay2003 2005-09-04
  • 打赏
  • 举报
回复
明白了。但是还要问一下在声明参数时使用“byval”是什么意思?我在函数中声明参数没有用过这个东西啊?
greatwriter 2005-09-04
  • 打赏
  • 举报
回复
同意楼上,sub和function好象就是有没有返回值的分别
okay2003 2005-09-04
  • 打赏
  • 举报
回复
明白了,结贴
threenewbee 2005-09-04
  • 打赏
  • 举报
回复
ByVal 是按值传递的意思。
比如:
x = 4
y = 4
Call Func1(x)
Call Func2(y)
MsgBox x '返回 6
MsgBox y '返回 4
Function Func1(ByRef n As Long)
n = 6
End Function
Function Func2(ByVal n As Long)
n = 6
End Function
taoheping 2005-09-04
  • 打赏
  • 举报
回复
一个有返回值,一个没有
zcazyy 2005-09-04
  • 打赏
  • 举报
回复
byval 就是按值传送到函数或子过程,在函数或子过程改变其值,不影响原来的变量。
熊孩子开学喽 2005-09-03
  • 打赏
  • 举报
回复
FUNCTION就是函数,有返回值(当然,你也可以不用这个返回值)
SUB就是子程序,没有返回值.
其余没有什么区别.
还是在C里面比较好,C不区分函数和子程序,一律视为函数,如果需要使用返回值,就定义返回值,不需要返回值就定义返回空值.

VB例子:
sub Add (byval A as long, byval B as long)
Msgbox A & "+" & B & "=" & A+B
end sub
这就是一个简单的子程序,弹出一个对话框. 如果调用: Add 1,3
则弹出一个对话框,内容为 1+3=4

Function Add (byval A as long, byval B as long) as long
Add= A+B
end function
这就是一个函数了.
调用:
...
D = Add(199,231) - Add(111,20)
...

调用后D的值为: D = 430 - 131 = 299

不知道这么解释楼主明白了没有



7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧