关于变量说明的小问题,帮我看看权威教材上是不是发生了错误!!!

dingding_2046 2004-09-26 03:16:00
江苏省计算机等级考试系列教材之vb程序设计教程》上关于变量申明有这么几句叙述,把我说的云里雾里:public语句用于说明全局变量,private语句用于说明窗体/模块级变量(?public语句用语说明全局变量我知道,但private说明模块级我就有点含糊了,不过说成private用来说明只在本窗体中所有过程中有效我就好理解些);它们都只用在模块的通用部分(??public用在通用模块的通用部分我知道,但private好象是用在该窗体的通用部分吧,我本来一直这么理解的,现在也不确定了);模块级和公有级的变量应在“代码编辑器”窗口中的“(通用)”或“(声明)“部分进行说明(???)
为了找答案,我做了以下验证:

Public a As Integer‘在form1的通用部分申明公有变量
Private b As Integer’在form1的通用部分申明私有变量

Private Sub Form_Click()
Form1.Hide
Form2.Show
End Sub

Private Sub Form1_Load()
a = 32767
Text1.Text = CStr(a)
b = 32767
Text2.Text = CStr(b)
End Sub

Private Sub Form2_Load()
a = 1
Text1.Text = CStr(a)
b = 32768
Text2.Text = b
End Sub
没有overflow,说明在form1中定义的变量,即使在通用部分,也只能在form1中被各个过程引用

如果放在公共模块中,form2在load时,由于b是integer类型,发生了overflow

我的理解对吗,还有,在一个窗体的公有模块中使用dim,public,private是不是都没什么区别了?

...全文
100 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
dingding_2046 2004-09-26
  • 打赏
  • 举报
回复
我本来不知道帖子可以提前的,害的我一个问题给了两次分,没办法,还得给啊!
dingding_2046 2004-09-26
  • 打赏
  • 举报
回复
我是mm,你是公的什么?是公鸡还是公鸭?呵呵
tztz520 2004-09-26
  • 打赏
  • 举报
回复
-_-#,两个公的拖着手
dingding_2046 2004-09-26
  • 打赏
  • 举报
回复
谢谢tztz520(午夜逛街),我已经完全弄明白了,谢谢了,以后陪你午夜逛街
tztz520 2004-09-26
  • 打赏
  • 举报
回复
对,主要是你自己将各种组合都试一下.等到你写的代码多了,自然就会留在你的脑海里的.
dingding_2046 2004-09-26
  • 打赏
  • 举报
回复
可是被组织到“标准模块”中的代码,不都是可以被这个程序中多个窗体共享的代码么,tztz520(午夜逛街):是不是被申明成private,dim就不能被所有窗体使用了,我好象有点明白了,去验证一下,谢谢大家
dingding_2046 2004-09-26
  • 打赏
  • 举报
回复
“private语句用于说明窗体/模块级变量”这句话是什么意思?private用来说明窗体中变量,还有模块级的变量?是这个意思么,可是vb中模块有三种模块呀,比如窗体模块,标准模块,类模块;还是说用private用来说明窗体模块的变量?
kmzs 2004-09-26
  • 打赏
  • 举报
回复
窗体也是一种模块哦,这样就能理解了吧
VB中的广义模块分为:
窗体模块
标准模块(狭义上的模块)
类模块
tztz520 2004-09-26
  • 打赏
  • 举报
回复
标准模块(.bas)中用private,dim定义的变量只能在这个模块中使用,其它地方不能用.用public定义的就是全局变量,哪都能用
dingding_2046 2004-09-26
  • 打赏
  • 举报
回复
谢谢楼上的,我已经验证了。还有一个小问题
可以在一个标准模块(.bas)中用private,dim定义一个量么,如果可以,与用public有什么区别。
tztz520 2004-09-26
  • 打赏
  • 举报
回复
\\在一个窗体的公有模块中使用dim,public,private是不是都没什么区别了\\
是有区别的.用public定义的变量可以在其它窗体或模块以"窗口名.变量"的方式调用.例如在form1中的通用里定义public abc as string,在其它窗体就可以form1.abc这样调了.而用private跟DIM定义的就不可以
sakurako 2004-09-26
  • 打赏
  • 举报
回复
form1中的a在form2中也能用
例如:form1.a就是form1中的a啦

7,762

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧