当前位置: 首页 > news >正文

Visual Basic 参数传送-形参与实参

在被调用过程中的参数是形参,出现在Sub过程和Function过程中。在过程被调用之前,形参并未被分配内存,只是说明形参的类型和在过程中的作用。形参列表中的各参数之间用逗号分隔,形参可以是变量名和数组名,但不能是定长字符串变量。

实参是在主调过程中的参数,在过程调用时实参将数据传递给形参。实参表可由常量、表达式、有效的变量名、数组名组成,实参表中各参数用逗号分隔。在调用过程时,实参被插入形参中的各变量处进行“形实结合”,形实结合是按位置结合的,即第一个实参与第一个形参结合,第二个实参与第二个形参结合,依此类推。例如:

形参列表和实参列表中的对应变量名可以不同,但实参和形参的个数、顺序以及数据类型必须相符。所谓类型相符,对于变量参数就是类型相同,对于值参数则要求实际参数对形式参数赋值相容。

若在过程的形参表中列入了Optional关键字,则可以指定过程的形式参数为可选参数。如果某一参数为可选参数,则参数表中此参数后面的其他参数也必须是可选的,并要用Optional来声明。

例如,我们建立一个计算两个数据的乘积的过程,它能可选择地乘以第三个数。在调用时,既可以给它传递两个参数,也可给它传递3个参数。为了定义带可选参数的过程,必须在参数表中使用Optional关键字,并在过程体中通过IsMissing函数来测试调用时是否传递可选参数。过程代码为:

Sub Multi(fir As Integer, sec As Integer, Optional thir)

n = fir * sec

If Not IsMissing(thir) Then

   n = n * thir

End If

Print n

End Sub

在调用上面的过程时,可以提供两个参数,也可提供3个参数,都能得到正确的结果。例如,如果用下述事件过程调用:

Private Sub Form_Click()

Multi 10, 20

End Sub

结果为200。如果用下述过程调用:

Private Sub Form_Click()

Multi 10, 20, 30

End Sub

结果为6000。

上述过程只有一个可选参数,也可以有两个或多个。但应注意,可选参数必须在参数的最后,且一般为Variant类型。另外,还可给可选参数指定缺省值,如Multi过程可改为:

Sub Multi(fir As Integer, sec As Integer, Optional thir As Integer = 30)

……

End Sub

一般来说,过程调用中的参数个数应等于过程说明的参数个数。如果使用ParamArray关键字,则过程可以接受任意个数的参数。例如,我们可以定义一个可变参数过程,用这个过程可以求任意多个数的乘积。

Sub Multi(ParamArray Numbers())

n = 1

For Each x In Numbers

   n = n * x

Next x

Print n

End Sub

可以用任意个参数调用上述过程,如:

Private Sub Form_Click()

Multi 3, 4, 5, 6, 7

End Sub

输出结果为2520。

http://www.dtcms.com/a/495714.html

相关文章:

  • 机器视觉的电路板字符缺陷检测应用
  • 如何进行坡向分析
  • 外贸网站一站式海外推广铜仁市住房和城乡建设局网站
  • 乐迪信息:设备温度异常怎么办?AI摄像机热成像双光监测
  • 【爬虫】浏览器插件
  • 百度网盟 网站定向网站的ftp地址是什么
  • 鸿蒙Harmony实战开发教学(No.7)-Image组件基础到进阶篇
  • 08_优雅的Python开发:Conda与Poetry的完美结合
  • 彩票网站建设需要什么平面设计资源网站
  • 三亚专业做网站wordpress后台修改icp连接
  • ABQ-LLM:用于大语言模型的任意比特量化推理加速
  • Langchain输出
  • 营销型网站服务公司建设网站的重点与难点在于
  • 做牛仔裤的视频网站民权做网站哪家好
  • python+uniapp基于微信小程序的心理咨询信息系统
  • 如何将一加手机的数据传输到笔记本电脑
  • comfyui环境部署教程(整合包版本)
  • Linux C/C++ 学习日记(26):KCP协议(二):kcp源码分享
  • 做网站的科技公司html5移动端开发
  • 【学习】USB摄像头 -> FFmpeg -> H264 -> AI模型
  • 文件同步服务:Rsync
  • 容器化部署 Docker-compose 更新镜像
  • 51单片机基础-实现LED点阵
  • 网站建设与维护试题含答案设计公司详情
  • 对文件的打开、创建、写入和读取操作
  • 【硬件片内测试】基于FPGA的完整DQPSK链路测试,含频偏锁定,帧同步,定时点,Viterbi译码,信道,误码统计
  • XC7A100T-2FGG484I Xilinx Artix-7 FPGA
  • 从 Hexo 到 Astro:重构我的个人博客
  • 网钛cms做的网站软文营销什么意思
  • 跨越文化界限:海外盲盒H5系统的沉浸式体验设计