CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

Function 和 Sub到底有什么区别

楼主okay2003()2005-09-03 23:36:27 在 VB / 基础类 提问

在看一些例子时经常会使用Sub   和Function的地方,但是自己在编写程序时发现这两者有相同的特点,如可以使用参数,可以在程序任何地方调用等等。请问这两者到底有什么区别么? 问题点数:20、回复次数:7Top

1 楼WallesCai(女人之美,在于蠢得无怨无悔,男人之美,在于撒谎撒得白日见鬼)回复于 2005-09-03 23:51:42 得分 10

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  
   
  不知道这么解释楼主明白了没有  
   
   
   
  Top

2 楼greatwriter(文豪)回复于 2005-09-04 00:17:41 得分 0

同意楼上,sub和function好象就是有没有返回值的分别Top

3 楼okay2003()回复于 2005-09-04 00:22:12 得分 0

明白了。但是还要问一下在声明参数时使用“byval”是什么意思?我在函数中声明参数没有用过这个东西啊?Top

4 楼zcazyy(狮心王)回复于 2005-09-04 01:24:53 得分 0

byval   就是按值传送到函数或子过程,在函数或子过程改变其值,不影响原来的变量。Top

5 楼taoheping(红风)回复于 2005-09-04 01:27:27 得分 0

一个有返回值,一个没有Top

6 楼caozhy(cfx)回复于 2005-09-04 01:29:17 得分 10

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   FunctionTop

7 楼okay2003()回复于 2005-09-04 08:42:07 得分 0

明白了,结贴Top

相关问题

  • sub和function的区别
  • sub和Function有什么区别吗?
  • 在定义子函数时,用sub 函数名()和function 函数名()有什么区别?
  • java sdk 与jdk到底有何区别?
  • kde和gnome到底有什么区别?
  • request.form("...")与request("")到底有何区别?
  • ado和dao到底有什么区别?
  • Null 和 Empty到底有什么区别?
  • C和C++到底有什么区别?
  • Vector 和 ArrayList到底有什么区别?

关键词

  • 函数
  • 值
  • 返回
  • 子程序
  • 调用
  • byval
  • 参数
  • sub
  • func
  • msgbox

得分解答快速导航

  • 帖主:okay2003
  • WallesCai
  • caozhy

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo