关于前缀下划线全局变量的疑问,你有没有遇上过?

QQRN 2004-07-13 01:53:27
是不是前缀下划线变量都自动变成临时变量啊???
在模块 A 里面设置了个全局变量(看好哦,是全局变量)
Public _AAA

然后在 Class B 里面给它赋值
_AAA=BBB

回到模块 A 发现
_AAA=Nothing

如果去掉下划线
执行结果 AAA=BBB

搞得我一头雾水,试了下才明白……
各位有没有遇到这种情况的???
...全文
159 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
水如烟 2004-07-13
  • 打赏
  • 举报
回复
此_Label非Label也
QQRN 2004-07-13
  • 打赏
  • 举报
回复
Class Form1里面的_Label1 自动变为Private了。

并且不管Module里面定义的是什么类型
如Public _Label1 As TextBox

但是Class Form1里面的_Label1 类型还是Label,汗……
而且不需要声明都可以用的…………
QQRN 2004-07-13
  • 打赏
  • 举报
回复
请先添加个名为Label1的Label
Class Form1里面的

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
_Label1 = Label1
BBB()
End Sub

下面是Module
Public Module Module1
Public _Label1 As Label
Public Sub BBB()
If _Label1 Is Nothing Then
MsgBox("Nothing!")
Else
MsgBox(_Label1.ToString)
End If
End Sub
End Module

结果是显示提示框 Nothing!
我知道怎么回事了,设置的全局变量如果去掉下划线跟某个控件名称一致的话,就会变成Nothing
如上,有个名为Label1 的控件,如果建立个变量叫_Label1的话,就会变Nothing
如果是其他名字,和一般的变量没区别。
myvbnet 2004-07-13
  • 打赏
  • 举报
回复
是不是前缀下划线变量都自动变成临时变量啊???
不是

定义成_AAA或AAA没有任何区别

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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