在vbs脚本中也存在和其他编程语言一样的概念,那就是变量的作用域,变量的作用域决

定在什么范围内可以访问。

  同样的在vbs脚本中对于变量也有一个生命周期, 变量的生命周期决定了变量的存续时间

这个主要是对于类的实例化对象有意义。

  vbs的函数和过程对参数变量进行读写的时候,在利用byVal和byRef的行为是不同的。

具体不多说,看代码。

一、代码

' vbs变量的作用域和生命周期

'  作用域
'1、vbs的变量有三种作用域: 脚本级作用域、过程级作用域、类级作用域
'2、vbs变量的作用域与三个关键字有关: Dim、Private、Public
'3、一般Private、Public用在类中, dim用在脚本级和过程级中
'4、关于Private和Public在后面类中进行描述 Option Explicit '定义脚本级变量
'脚本级变量在整个脚本都可用
Dim strUserName
strUserName = "volcanol" '调用方法访问脚本级变量,
DisplayGlobalVarible DisplayUserName Sub DisplayUserName()
'定义过程级变量,且这个变量与外面的变量同名,
'因此这个变量就将
Dim strUserName
strUserName = InputBox("输入名字")
MsgBox strUserName
End Sub Sub DisplayGlobalVarible()
'访问全局变量
MsgBox strUserName
End Sub '变量的生命周期
'1、脚本级的变量的生命周期是脚本运行的整个期间
'2、过程或者函数级变量的生命周期是函数、过程调用的整个期间
'3、类级的变量生命周期是类的对象存续的期间
'具体这个就不说了, 慢慢体会吧 '函数、过程调用的传值byval和传址byref
'
'1、byval 就和C语言中的普通参数一样,对原参数不会进行修改
'2、byref 就和C语言中的指针参数一样,可以对原参数进行修改,
' 当然,如果byref不进行赋值操作的话,也不会进行修改 Dim lngByVal
Dim lngByRef lngByVal =
lngByRef = '调用传值参数,不改变原来的参数
subByVal lngByVal '调用传址参数,改变原来的值
subByref lngByRef MsgBox lngByVal & vbNewLine & lngByRef '说明一点, 对于传址调用的检查不能保证100%的有效果
'这里,按照正常用法,应该传递变量
subByRef '传值参数
Sub subByVal(byval lngPar)
lngpar = lngpar +
End Sub '传址参数
Sub subByRef(byref lngPar)
lngpar = lngpar +
End Sub

二、Tips

1、变量的作用域越大,引起的bug的可能性越大,因此最好不要轻易修改脚本级的变量。

2、传值、传址这个需要注意,一般情况下最好用传值

3、如果一个函数或者过程只需要返回一个值,那么就用函数返回至,而不要用过程使用

ByRef的方式来返回值。

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

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

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

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

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

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

工控随笔_18_西门子_WinCC的VBS脚本_07_变量作用域和传值、传址的更多相关文章

  1. 工控随笔_13_西门子_WinCC的VBS脚本_04_变量类型之二

    上一个随笔说了一些关于vbs变量类型的内容,这一篇我们继续说说变量类型相关的内容. 一.NULL补充内容 '需要注意的是,NULL不能简单通过 = 来进行比较,而必须通过 'IsNull函数来实现 ' ...

  2. 工控随笔_15_西门子_WinCC的VBS脚本_05_变量类型之三_VBS数组

    数组是一种复杂数据类型,不但有数组本身的数据类型: 数组,还有数组元素中存储的数据的类型. 一.vbs中的数组类型 在VBS中提供了两种数组类型,一种是固定数组,一种是动态数组. 1.固定数组 就是在 ...

  3. 工控随笔_12_西门子_WinCC的VBS脚本_03_变量类型

    说到编程语言,总是绕不开数据类型,因为数据类型决定了数据可以进行什么样的操作.同时数据类型 从广义上来说是一种数据结构,在过程式编程的过程中,曾经有过这样一种说法: 程序 = 数据结构 + 算法 可见 ...

  4. 工控随笔_10_西门子_WinCC的VBS脚本_01_基础入门

    很多人都认为VB语言或者VBS脚本语言是一种很low的语言,从心里看不起VB或者VBS, 但是其实VBS不仅可以做为系统管理员的利器,同样在工控领域VBS语言大有用武之地. 西门子的WinCC提供了两 ...

  5. 工控随笔_21_西门子_WinCC的VBS脚本_10_对象_01

    最近有点小忙,各种事情,心情也不是很好,烦心事特别多,因此最近更新的比较慢. 不敢再松懈了,今天正好有点时间,就继续看了一下VBScript中关于对象的一些内容. 一.对象 OOP是编程规模发展到一定 ...

  6. 工控随笔_20_西门子_WinCC的VBS脚本_09_常量和流程控制_02

    vbs不但提供了分支结构,还提供了丰富的循环形式.一共有3种循环: 1.for循环 2.do...loop循环 3.while循环 各种循环有各自的特点,在使用的时候可以进行转换. 前面已经描述过Fo ...

  7. 工控随笔_19_西门子_WinCC的VBS脚本_08_常量和流程控制_01

    在编程的过程中,有时候我们会使用一些固定的值,例如圆周率,或者某个人的生日,或者家庭住址等等, 这些信息对于一个对象来说一旦确定就不会改变,因此我们在编程的时候也不希望这些信息会改变,在VBS里面 也 ...

  8. 工控随笔_17_西门子_WinCC的VBS脚本_06_过程和函数

    和其他语言一样,vbs提供了过程和函数机制,通过函数和过程可以优化代码结构和实现代码复用, 减少代码的编写量. 一.代码 具体不再多说,看实例代码. ' vbs的函数和过程 '1.过程式编程是一大编程 ...

  9. 工控随笔_11_西门子_WinCC的VBS脚本_02_运算符

    VBS脚本做为编程语言,提供了很多的运算符,通过这些运算符,可以实现不同的操作.运算符具有不同的类型 不同的运算符之间具有运算优先级. 一.运算符的分类 大体分为以下几类: 1.赋值运算符 2.算术运 ...

随机推荐

  1. Java的命名规范

    1.类名.接口名:首单词的第一个字母要大写.如果有多个单词,其他单词的首字母要大写. 2.包名:全部小写. 3.变量名.方法名:首单词的第一个字母小写.如果有多个单词,其他单词的首字母要大写. 4.常 ...

  2. 2017年5月11日17:43:06 rabbitmq 消费者队列

    从昨天开始发现个问题,一个接口在本地调用时大部分正常,一旦在生成者打一个断点调试,并且在promotion也打断点的时候会出现没有返回channel的异常,然后消费者就再也消费不了了 16:57:45 ...

  3. Java 实现ftp 文件上传、下载和删除

    本文利用apache ftp工具实现文件的上传下载和删除.具体如下: 1.下载相应的jar包 commons-net-1.4.1.jar 2.实现代码如下: public class FtpUtils ...

  4. java实现截图功能

    package Jietu; import java.awt.Dimension; import java.awt.Rectangle; import java.awt.Robot; import j ...

  5. 微信小程序前端开发踩坑(一)

    之前由于不了解微信小程序的整个的运行开发机制,走了很多的弯路,脑子灵光的可能不会遇到,这个主题系列的帖子希望可以帮助到像我一样理解能力慢的孩子. 不论是开发微信小程序还是说学习任何一门编程语言,最重要 ...

  6. redis命令Keys(九)

    常用命令 1>keys 返回满足给定pattern 的所有key redis 127.0.0.1:6379> keys mylist* 1) "mylist" 2) & ...

  7. 网赚app

    网赚app有很多目前来说做的比较好的赚的比较多的有四款推荐 宝石星球下载地址:http://www.baoshixingqiu.com/redPacket?key=548341 雪梨网APP下载地址 ...

  8. Winscp无法连接linux虚拟机解决

    之前需要从主机传文件到虚拟机上,安装了vmware tools,拖拽文件后发现文件总是会损坏一些,查了一下,使用Winscp就不会出现这个问题. 安装好后配置连接:(Centos7) 打开虚拟机,找到 ...

  9. H5视频直播扫盲

    H5视频直播扫盲 2016-05-25 • 前端杂项 • 14 条评论 • lvming19901227 视频直播这么火,再不学就out了. 为了紧跟潮流,本文将向大家介绍一下视频直播中的基本流程和主 ...

  10. 2082 : Only choose one

    题目描述 A想玩个游戏,游戏规则是,有n个人,编号从1-n,一字排开,站在奇数位置的人淘汰,剩下的人再一字排开,站在奇数位置的人淘汰,以此重复几次,最后只剩最后一个人,问最后一个人的编号是多少? 输入 ...