Foxtable(狐表)用户栏目专家坐堂 → 请教静态变量


  共有2004人关注过本帖树形打印复制链接

主题:请教静态变量

帅哥,在线噢!
hbhb
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
请教静态变量  发帖心情 Post By:2016/11/16 14:43:00 [只看该作者]


静态变量的值能够保存到下次运行事件代码

大师:请问下次是什么意思?
1、如果是窗口中的按钮事件,是不是只要窗口关闭后,再打开,再按按钮就为下一次?如果窗口隐藏后再显示呢?
2、如果是窗口中容器中的按钮事件,又是怎样?
3、如果是是控件中的页签中的按钮呢?页签的隐藏与关闭?

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  2楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2016/11/16 14:52:00 [只看该作者]

 

使用静态变量

我们知道,在事件代码运行过程中,普通变量的值并不会保存,下次运行事件代码时,变量会重新回到初始值。
虽然我们可以用全局变量保存值,以便下次调用,但是全局变量主要用于不同事件之间的数据交换,资源"开销"较大。
如果不需要和其它事件交换数据,仅仅是为了保存数据,以便下次运行事件代码的时候调用,那么请使用静态变量
和普通变量一样,静态变量只能在定义它的事件代码中访问,但是静态变量的值能够保存到下次运行事件代码。

声明静态变量的语法是:

Static 变量名 As 数据类型

例如:

Static Name As String

静态变量通常用于标记。

示例一

为了说明普通变量和静态变量的差别,请在项目事件MainTableChanged加入如下代码:

Dim Val1 As Integer '定义一个普通变量Val1
Static Val2
AS Integer '定义一个静态变量Val2
Val1 = Val1 +
1
Val2 = Val2 +
1
MessageBox.Show(
"Val1 = " & Val1 & " Val2 = " & Val2)

设置完成后,反复切换主表,你会发现Val1的值始终是1,而Val2的值在每次切换主表后都会加1。
这是因为Val1是一个普通变量,虽然每次运行时也给Val1的值加上了1,但是增加后的值,并不会保存到下次运行。
而Val2是一个静态变量,每次运行给Val2的值加1,这个增加后的值会保存到下次运行,所以每次都是在上一次加1的基础上再加1。


 回到顶部
帅哥,在线噢!
hbhb
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2016/11/16 15:03:00 [只看该作者]

我是说,静态变量什么时候恢复到原始值?

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110815 积分:564019 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/16 15:28:00 [只看该作者]

重启项目。

 回到顶部
帅哥哟,离线,有人找我吗?
blackzhu
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:狐仙 帖子:9879 积分:57634 威望:0 精华:15 注册:2008/9/1 9:45:00
  发帖心情 Post By:2016/11/16 15:29:00 [只看该作者]

 关闭退出后再起

 回到顶部
帅哥,在线噢!
hbhb
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐神 帖子:5061 积分:13092 威望:0 精华:0 注册:2014/5/15 21:34:00
  发帖心情 Post By:2016/11/16 15:32:00 [只看该作者]

窗口关闭,还是项目关闭?

 回到顶部
帅哥哟,离线,有人找我吗?
oaok
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1198 积分:7859 威望:0 精华:0 注册:2013/5/17 14:26:00
  发帖心情 Post By:2016/11/16 16:47:00 [只看该作者]

用户已经被屏蔽

 回到顶部