新浪博客

VB.net使Fuction函数返回多个值

2017-09-18 10:48阅读:
说明:本文属于新手扫盲文,对于程序猿大神来说,可以不拘一格使用各种不同的方法来实现目的,路过就好。但是对于新学编程或编程老手但是项目经历不多的人来讲,可是个难题,本文旨在能够抛砖引玉。
一般我们编写事件代码过程使用 Sub 过程,但需要返回值时,则使用 Function ,但是,Function 只能返回一个值(不仅仅是VB)。而我们的需要可能不只是一个值,可能搜遍网络也没有有效而又详细的办法。这里我们就说一说怎么使 Function 返回多个值。
方法一:使用参数带回
一个过程都使用若干参数,Function 函数形如:Private Function (Byval A As String, Byval B As String) As Integer 。在这里,Function 本身返回一个整数值,但是,我们可以使用函数的参数“A”、“B”来携带结果值返回,但是,参数中的“Byval”须改写为 “ByRef”。示例代码:
Private Function (ByRef A As String, ByRef B As String) As Integer
Dim C As String '过程需要处理的变量
……(过程处理代码略)
C= …… ‘过程处理结果
A = ……
B = ……
Return …… 'Function 函数本身返回值
End Sub
如果无需 Function 函数本身返回值,直接将 Function 改为 Sub 也能实现我们要返回的参数。


方法二:采用数组返回
同样,我们用方法一的 Function 来举例,代码如下:
Private Function (ByVal A As String, ByVal B As String) As Integer
Dim C(99) As Integer '过程需要处理的变量(包含100个数的数组)
……(过程处理代码略)
Return C 'Function 函数本身返回值
End Sub
此时,返回的变量 C 就不是一个数,而是100个数了。
方法三:巧用返回类型
Function 函数一般应定义返回类型,有些类型本身就是包含多个值(本质上是特殊类别的数组),例如:
Private Function (ByVal A As String, ByVal B As String) As DataTable '数据表
Dim C As DataTable '过程需要处理的变量(数据表)
……(过程处理代码略)
Return C 'Function 函数本身返回值
End Sub
此时,返回的变量 C 是一个 DataTable 数据表(类似 Excel 表格),可以包含大量不同类型的数据,可以包含 Integer、Double、String、Boolean 或者 Date 等任意类型的 若干值。
总结:Function 函数返回的其实不是一个值,而是一个变量,因此,Function 函数的返回值的个数是任意的,可以根据我们的需要而进行设定。


写给新学编程爱好者又对VB比较纠结者的话:
编程语言种类繁多,但大同小异,各有优劣侧重,语言文字不同但逻辑思维一样。因此,你精通了一种语言,其他语言也就触类旁通,只不过是需要花点时间适应新的语法规则而已。而VB.net发展于VB,但和VB完全不同,是不同的语言。国内很多人过于贬低VB.net,而实则VB.net非常强大,尤其在国外,使用VB.net的非常多,特别是在Web开发项目当中。VB.net 的优点在于可视化编程及UI,可以快速部署程序编写,缺点在于执行效率相对偏低。但如果你不是为了开发 Windows 操作系统、Adobe Photoshop 这类超大型程序又或者 魔兽世界 这样的大型游戏,所谓执行效率的差异根本感受不到。微软在Windows系统中附带的各类应用程序也都是用VB编写。

我的更多文章

下载客户端阅读体验更佳

APP专享