VB中dim ,static ,public,这三个的区别是啥

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VB中dim ,static ,public,这三个的区别是啥相关的知识,希望对你有一定的参考价值。

dim ,static 这两个我基本了解,前者是不会保留的,后者是继续计算下去的那种意思。。。public是什么情况下使用呢?最好 说得简单,易懂些

VB程序中的变量,按照作用域分,可以分为三类。
——局部变量:在过程内定义的变量叫做局部变量,其作用域是它所在的过程。局部变量通常用来存放中间结果或用作临时变量。某一过程的执行只对该过程内的变量产生作用,对其它过程中相同名字的局部变量没有任何影响。因此,在不同的过程中可以定义相同名字的局部变量,它们之间没有任何关系。
局部变量使用Dim\Static语句定义。
——窗体变量和模块变量:窗体变量可用于该窗体内的所有过程。当同一窗体内的不通过程使用相同的变量时,必须定义窗体层变量。
模块层变量的声明与使用与窗体层变量相同。
窗体、模块变量只能用Dim语句定义。
——全局变量:全局变量也称全程变量,其作用域最大,可以在应用程序的任何模块、每个过程中使用。和模块级变量相似,全局变量也要在模块的声明部分定义。所不同的是,全局变量必须使用Global语句声明,不能使用Dim语句。
参考技术A 可以这样子去理解:
public,意思就是公共的,公开的。

那么就这样说吧,如果你用public声明了一个变量,就可以在程序的任何位置调用它,不论哪个模块或窗体都可以,适合于窗体与窗体之间的数值传递。
参考技术B Public 整个工程可访问
dim 所处于模块内代码可访问
static静太变量 其值会保留 程序运行到其定义处时不会将其值再次初始化
参考技术C pubic,是公有的,任何地方,任何函数都可以用,而且,是完全继承 参考技术D public是公有变量
不管在哪个函数中都可以调用

子数涵数·VB——变量

最近,VB吧频繁出现如下图所示的帖子(现在C吧、VB吧等都已经被二级考生玩坏了)

这主要用到的是变量的概念

首先,我们来看一下变量的数据类型

当然,就这题而言,数据类型不是重点,主要考察的是变量的作用域

Dim在模块顶部声明时,即在过程外声明时,为模块变量,而不是局部变量;此时它的作用域为模块级别,即在整个模块中皆可使用。

Static与Dim的区别:用static声明的变量为静态变量,其存在时间较其作用域更久,即在程序运行时,用static声明的变量会一直存在,而用Dim声明的变量只在过程中存在;但Static只能在模块顶部使用。

Dim和private的区别:Dim可以在过程内声明,而Private不行;当Dim和Private都在模块顶部声明时,恕我无知,找不出它们的区别。

Static不仅可以用来声明变量,还可以用来声明function函数过程和sub子过程。

Public公用变量,只能在窗体模块或标准模块顶部声明,当其在标准模顶部时,可以跨模块调用;当其在窗体模块顶部时,想跨模块调用必须在变量名前加上窗体名。

 

接着,我们来讲讲变量声明的两种方式,隐式声明和显式声明。

隐式声明:就是不声明变量,直接使用,由VB自动补上其类型;这种方法虽然简介,但不易检查。

显式声明:就是先声明变量,再使用它,这样有利于自定义其类型和检查。

强制显式声明:可以在类模块、标准模块和窗体模块的最顶部添上一句“Option Explicit”,这表示在该模块中,你必须先声明才能使用变量。

 

最后,附上贴吧里那题的答案

以上是关于VB中dim ,static ,public,这三个的区别是啥的主要内容,如果未能解决你的问题,请参考以下文章

子数涵数·VB——变量

作为模块化字段访问修饰符的 Dim、Global、Public 和 Private 有啥区别?

static 和 Volatile 的区别

这个C++程序加不加static有区别吗?

VB6的UTF8编码解码

哪位大神告诉一下vb6.0怎么调用带2个参数的存储过程,有简单的例子最好。谢谢!