工控随笔

您所在的位置:网站首页 vb怎么调用自定义函数 工控随笔

工控随笔

2024-07-14 16:07| 来源: 网络整理| 查看: 265

  和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用,

减少代码的编写量。

 

一、代码

  具体不再多说,看实例代码。

' vbs的函数和过程 '1、过程式编程是一大编程思想,就和后来的面向对象一样,对于代码的复用 ' 和代码的逻辑结构是具有非凡的意义的。 '2、现在的编程语言无论是脚本、解释型语言、编译型语言都具有函数和过程 ' 的概念 '3、简单的来说我们可以把函数或者过程看成一个黑盒子,给它原料(输入参数) ' 他们就会生成产品(输出)。 '4、在语法上来看,函数和过程就是一段高度耦合的完成一定功能的代码片段, ' 就是通常说的代码块, 或者说具名代码块,函数名或者过程名就是这段代 ' 码的名称 '5、函数返回值,过程不返回值, 但是不返回值不代表不产生输出,这个需要注 ' 意 Option Explicit 'vbs 过程 '1、通过 sub 关键字表示定义过程,sub关键字表示具名代码块的开始, ' 通过 end sub 来表示代码块的结束 '2、语法格式 ' Sub Procedure_Name(argment 1, argment 2,.......) ' sub code block ' end sub ' ' 下面为中文描述 ' Sun 过程名(参数1, 参数2,参数3,.........) ' 过程代码块 ' end sub '定义简单的过程 Sub GreetingWorld MsgBox "Hello world,This is my the very first subprocedure!" End Sub '调用过程 GreetingWorld '前面说过过程可以接受参数,下面定义接受参数的过程 '需要注意的是,因为vbs只有一种数据类型variant,所以定义过程的时候 '无需定义参数的类型 Sub SayHellow(strName) MsgBox "Hellow, " & strName & " Nice to meet you!" End Sub '调用带参数的过程 SayHellow("volcanol") '过程调用,传递参数不需要用() SayHellow "volcanol" 'vbs函数 '1、vbs函数通过关键字 function 来指定 '2、对于vbs函数来说,其与过程的最大区别就是函数返回值,其他规则 ' 一样 '3、在一个区别就是,即使是调用不带参数的函数,也必须有()表示这个是 ' 函数 '4、函数的返回值,通过函数名返回,因此在函数内部需要将返回值赋值给 ' 函数名, 这里就相当于函数名是一个隐式的变量定义 '定义不带参数的函数 Function fCycle() fCycle = 2 * 3.1415926 * 10 End Function Dim fRollCycle fRollCycle = fCycle() MsgBox "半径为10的圆周的周长为: " & fRollCycle '定义带参数的函数 Function fSum(arg1,arg2) fSum = arg1 + arg2 End Function '调用带参数的函数 Dim nJackAge Dim nMikeAge nJackAge = 25 nMikeAge = 30 MsgBox "Jack and Mike's age sum is: " & fSum(nJackAge,nMikeAge) 'call语句 '在vbs中还有一个语句,用来调用过程,那就是call 语句 '对于函数和过程call语句的方式不一样 '1、不带参数的过程, call语句调用一样 Call GreetingWorld Call GreetingWorld() '2、带参数的过程 ' 带参数的过程调用必须传递参数 '下面这一句不能正确执行 'Call SayHellow "Jesus" Call SayHellow("Jesus") '3、不带参数的函数 '这样就不能将返回的值再次使用,所以没有什么意义 Call fCycle() '4、带参数的函数 '同样没什么意义 Call fSum(10,30) 'Tips '1、对于call语句,一般不要使用,两个原因,难打字,而且规则太复杂 '2、对于过程,就不用带括号()调用,这样一般一看就知道是过程 '3、对于函数,即便是不带参数的函数调用,也用括号(),这样一看就知道是函数调用 'Exit sub和Exit Function 语句 '1、有时候函数或过程执行到一半的时候因为已经得到了想要的结果,这个时候如果再往下 '执行未完成的部分,就会耗费资源这个时候就可以提前退出函数或过程 '2、Exit sub 语句退出过程 '3、Exit function 语句退出函数 '退出过程 Sub DisplaySum(lngArg1,lngArg2) If Not IsNumeric(lngArg1) Or Not IsNumeric(lngArg2) Then MsgBox "错误的数据类型,将退出执行过程" Exit Sub Else MsgBox CLng(lngArg1) + CLng(lngArg2) End If End Sub DisplaySum "volcanol", "1" DisplaySum "123","456" '退出函数 '退出函数与退出过程有一点不同的就是,在退出函数之前必须为函数设置一个默认返回值 Function fFactorial(nNum) Dim nFactorial Dim nLoop '重点要注意这个地方的防御式编程 If Not IsNumeric(nNum) Or Not VarType(nNum) = vbInteger Then '因为阶乘的值大于等于1,所以返回0可以表示执行出错,在使用这个 '函数的时候,必须先检查返回值是否为0 fFactorial = 0 MsgBox "参数错误,将退出执行" Exit Function Else '必须注意,没有初始化的变量其值 == 0 nFactorial = 1 For nLoop = 1 To CLng(nNum) nFactorial = nFactorial * nLoop Next End If fFactorial = nFactorial End Function MsgBox fFactorial("volcanol") MsgBox fFactorial(3.1415926) MsgBox fFactorial(10)

 

二、Tips

1、尽量不要用CALL语句

2、如果在函数中使用了Exit Function函数,那么必须要给函数一个替代值

 

--------------------------------------------------------------分割线---------------------------------------------------------------

1、文章均为个人原创,欢迎转载,转载请保留出处:https://www.cnblogs.com/volcanol/

2、获取工控PLC、变频器、HMI、计算机、Windows、Linux、嵌入式资料点击:获取资料

3、如果您觉得文章对您有帮助可转至页面上半部分打赏,或移步:打赏 

4、或者在页面右下角点推荐哟!!!

--------------------------------------------------------------分割线---------------------------------------------------------------

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3