- VB.Net 基础教程
- VB.Net - 首页
- VB.Net - 概述
- VB.Net - 环境设置
- VB.Net - 程序结构
- VB.Net - 基本语法
- VB.Net - 数据类型
- VB.Net - 变量
- VB.Net - 常量
- VB.Net - 修饰符
- VB.Net - 语句
- VB.Net - 指令
- VB.Net - 运算符
- VB.Net - 决策制定
- VB.Net - 循环
- VB.Net - 字符串
- VB.Net - 日期和时间
- VB.Net - 数组
- VB.Net - 集合
- VB.Net - 函数
- VB.Net - 子程序
- VB.Net - 类和对象
- VB.Net - 异常处理
- VB.Net - 文件处理
- VB.Net - 基本控件
- VB.Net - 对话框
- VB.Net - 高级窗体
- VB.Net - 事件处理
- VB.Net 高级教程
- VB.Net - 正则表达式
- VB.Net - 数据库访问
- VB.Net - Excel 表格
- VB.Net - 发送邮件
- VB.Net - XML 处理
- VB.Net - Web 编程
- VB.Net 有用资源
- VB.Net - 快速指南
- VB.Net - 有用资源
- VB.Net - 讨论
VB.Net - 函数
过程是一组语句,当被调用时,这些语句一起执行一项任务。过程执行完成后,控制权将返回到调用该过程的语句。VB.Net 有两种类型的过程:
函数
子过程或 Subs
函数返回值,而子过程不返回值。
定义函数
Function 语句用于声明函数的名称、参数和主体。Function 语句的语法如下:
[Modifiers] Function FunctionName [(ParameterList)] As ReturnType [Statements] End Function
其中,
修饰符 - 指定函数的访问级别;可能的值包括:Public、Private、Protected、Friend、Protected Friend,以及有关重载、覆盖、共享和隐藏的信息。
FunctionName - 指示函数的名称
ParameterList - 指定参数列表
ReturnType - 指定函数返回的变量的数据类型
示例
以下代码片段显示了一个函数 FindMax,它接收两个整数值并返回两者中较大的一个。
Function FindMax(ByVal num1 As Integer, ByVal num2 As Integer) As Integer ' local variable declaration */ Dim result As Integer If (num1 > num2) Then result = num1 Else result = num2 End If FindMax = result End Function
函数返回值
在 VB.Net 中,函数可以通过两种方式将值返回给调用代码:
使用 Return 语句
将值赋给函数名称
以下示例演示了如何使用 FindMax 函数:
Module myfunctions Function FindMax(ByVal num1 As Integer, ByVal num2 As Integer) As Integer ' local variable declaration */ Dim result As Integer If (num1 > num2) Then result = num1 Else result = num2 End If FindMax = result End Function Sub Main() Dim a As Integer = 100 Dim b As Integer = 200 Dim res As Integer res = FindMax(a, b) Console.WriteLine("Max value is : {0}", res) Console.ReadLine() End Sub End Module
当以上代码编译并执行时,会产生以下结果:
Max value is : 200
递归函数
函数可以调用自身。这称为递归。以下是一个使用递归函数计算给定数字的阶乘的示例:
Module myfunctions Function factorial(ByVal num As Integer) As Integer ' local variable declaration */ Dim result As Integer If (num = 1) Then Return 1 Else result = factorial(num - 1) * num Return result End If End Function Sub Main() 'calling the factorial method Console.WriteLine("Factorial of 6 is : {0}", factorial(6)) Console.WriteLine("Factorial of 7 is : {0}", factorial(7)) Console.WriteLine("Factorial of 8 is : {0}", factorial(8)) Console.ReadLine() End Sub End Module
当以上代码编译并执行时,会产生以下结果:
Factorial of 6 is: 720 Factorial of 7 is: 5040 Factorial of 8 is: 40320
Param 数组
有时,在声明函数或子过程时,您不确定作为参数传递的参数数量。VB.Net Param 数组(或参数数组)在这种情况下很有帮助。
以下示例演示了这一点:
Module myparamfunc Function AddElements(ParamArray arr As Integer()) As Integer Dim sum As Integer = 0 Dim i As Integer = 0 For Each i In arr sum += i Next i Return sum End Function Sub Main() Dim sum As Integer sum = AddElements(512, 720, 250, 567, 889) Console.WriteLine("The sum is: {0}", sum) Console.ReadLine() End Sub End Module
当以上代码编译并执行时,会产生以下结果:
The sum is: 2938
将数组作为函数参数传递
您可以在 VB.Net 中将数组作为函数参数传递。以下示例演示了这一点:
Module arrayParameter Function getAverage(ByVal arr As Integer(), ByVal size As Integer) As Double 'local variables Dim i As Integer Dim avg As Double Dim sum As Integer = 0 For i = 0 To size - 1 sum += arr(i) Next i avg = sum / size Return avg End Function Sub Main() ' an int array with 5 elements ' Dim balance As Integer() = {1000, 2, 3, 17, 50} Dim avg As Double 'pass pointer to the array as an argument avg = getAverage(balance, 5) ' output the returned value ' Console.WriteLine("Average value is: {0} ", avg) Console.ReadLine() End Sub End Module
当以上代码编译并执行时,会产生以下结果:
Average value is: 214.4
广告