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

函数如何返回多个值?

楼主hylneo()2005-02-23 11:25:44 在 VB / 基础类 提问

通常,一个函数只能返回一个值。我想通过一个函数运算后返回多个值,请问如何实现?  
  Private   function   A1()   as   integer  
  .....  
  end   function  
   
  以上例子只能返回A1的值。我想通过该函数运算后返回A1,A2,A3,三个值。请问如何实现?谢谢!!! 问题点数:20、回复次数:18Top

1 楼jadeluo(秀峰)回复于 2005-02-23 11:43:55 得分 5

用ByRef参数来返回第2、3、……n个结果。  
  Top

2 楼nik_Amis(...)回复于 2005-02-23 11:45:36 得分 0

可以自定义一个类Top

3 楼viena(维也纳N02)回复于 2005-02-23 11:49:25 得分 0

用ByRef(引用传递)参数,变量传入后,可以在函数内修改它的值Top

4 楼viena(维也纳N02)回复于 2005-02-23 11:53:06 得分 5

在函数内修改ByRef传递的参数,等于修改传入的变量Top

5 楼dlyme(大老爷们儿)回复于 2005-02-23 12:36:59 得分 0

为什么不用数组作接口?  
  Private   Function   A1()   As   Integer()Top

6 楼homezj(小吉)回复于 2005-02-23 13:04:03 得分 5

函数返回数组、集合或数组、集合做参数以及用Byref传参数都行,方法太多!看自己需要选用。Top

7 楼zglnew(zgl)回复于 2005-02-23 16:21:39 得分 0

函数中,多传一些参数、数组就行了Top

8 楼myhgyp(也许是这样的,信不信由你)回复于 2005-02-23 16:39:06 得分 5

Option   Explicit  
   
  Private   Sub   Form_Load()  
    Dim   mm()   As   String  
    Dim   I,   J   As   Integer  
    mm   =   initarray  
    For   I   =   0   To   2  
          For   J   =   0   To   1  
          MsgBox   mm(I,   J)  
          Next   J  
    Next   I  
    reSetarray   mm  
    mm(0,   0)   =   "7"  
    mm(0,   1)   =   "8"  
    For   I   =   0   To   3  
          For   J   =   0   To   1  
          MsgBox   mm(I,   J)  
          Next   J  
    Next   I  
  End   Sub  
  Private   Function   initarray()   As   String()       '返回字符数组  
        Dim   a(4,   2)   As   String  
        Dim   I,   J   As   Integer  
        Dim   k   As   Integer  
            k   =   1  
        For   I   =   0   To   3  
            For   J   =   0   To   1  
                a(I,   J)   =   k  
                k   =   k   +   1  
            Next   J  
        Next   I  
        initarray   =   a  
  End   Function  
  Private   Sub   reSetarray(ByRef   a()   As   String)  
      Dim   I,   J   As   Integer  
      For   I   =   UBound(a)   -   1   To   1   Step   -1  
          For   J   =   0   To   1  
          a(I,   J)   =   a(I   -   1,   J)  
          Next   J  
      Next   I  
  End   SubTop

9 楼zyl910(编程的乐趣在于编程控制硬件,与用图形学实现绚丽效果)回复于 2005-02-23 17:07:21 得分 0

返回数组效率太低  
  封装成类好的多  
  Top

10 楼szmickylee(笨老鼠)回复于 2005-02-23 17:19:11 得分 0

要不就在定义变量的时候用byref来定义,就可以了Top

11 楼wenxinguo213(温 泉)回复于 2005-02-23 21:58:38 得分 0

我看还是自定义一个类Top

12 楼l3300(小沙子)回复于 2005-02-23 23:53:16 得分 0

定义结构不行?Top

13 楼kussoft(TerryHuang)回复于 2005-02-24 01:27:18 得分 0

返回多个运行结果可能很多种方式啊。例如,你可以自定义一个数据类型,  
  也可以将返回值返回到一个字符串当中(12,23,34)然后用split来分成数组。  
  还有就是直接返回一个数组都可以啊。Top

14 楼chuting(学习的动力)回复于 2005-02-24 07:37:55 得分 0

一个函数返回多个值  
  完全可以,但不是你说的那样,问题问得有问题  
  提出正确的问题,等于解决问题的一半Top

15 楼youchenglong(小志)回复于 2005-02-24 08:06:32 得分 0

唉,这么累,定义个公共变量就行了,我就常这么做,虽然很土,实用就行Top

16 楼yiliao(依了)回复于 2005-02-24 09:06:05 得分 0

对定义公共变量是最简单的方法,不过最好在一个模块中定义这些变量.Top

17 楼dongge2000(目前叫西西了)回复于 2005-02-24 09:57:00 得分 0

呵呵,我是用TYPE定义一个数据类型Top

18 楼lxgmag(沧海亦心)回复于 2005-02-24 10:03:01 得分 0

可以定义一个结构,来实现多个变量来传递;  
  另外,还可以用一个最蠢的办法来实现,就是在函数内把要传递的值转换程字符串连接在一起,组成一个变量,然后返回出来。在使用这个值时,再把这个值按照相应的办法把它拆开。  
  这个办法比较适合传递较少的变量。Top

相关问题

  • 如何只取函数的返回值
  • 如何返回函数的值?
  • 函数定义时,如何返回值?
  • 函数是如何返回值的?
  • 函数返回值???
  • 函数的返回值?
  • 函数返回值问题??????
  • C函数的返回值
  • 函数返回多个值
  • 函数返回值问题

关键词

  • 函数
  • 修改
  • 变量
  • 数组
  • 返回
  • 值
  • byref
  • 参数
  • 定义
  • 传递

得分解答快速导航

  • 帖主:hylneo
  • jadeluo
  • viena
  • homezj
  • myhgyp

相关链接

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

广告也精彩

反馈

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