本人最近灵异小说看多了,遇到一些出乎意料的现象都喜欢归咎于“灵异事件”。
在使用VB6编程时,本人就遇到过几个诡异的现象。有些现象经过思考后可以找到其中的原因,但是有些的至今没找到答案。
先来看看已经找到答案的:
Msgbox Text1.Text - Text2.Text。
如果在Text1中输入12,Text2中输入12.8,返回的结果不是预想的0.8,而是 -800000000000001。出现这种现象其实是“精度”在作怪。
将代码修改为:
Dim i as Single
i=Text1.Text - Text2.Text
Msgbox i
再来看看本人至今未找到答案的现象。
1.
学过VB的都知道Initialize作为窗体初始化事件要先于Load事件发生。但是,也有例外的时候。例如在Initialize和Load事件中都对窗体的标题进行设置。
Private Sub Form_Initialize()
Me.Caption="1"
End Sub
Private Sub Form_Load()
Me.Caption="2"
End Sub
如果按照正常的事件响应顺序窗体的标题栏中应显示2,但返回的结果为1。
2.在过程的形式参数前使用Byref,代表地址传递。当在过程中的形式参数被修改,那么实际参数的值也随之改变。但是,世事无绝对:
Private Sub abc(Byref i as Integer)
i=12
End Sub
Private Sub Command1_Click()
Dim i
i=3
abc(i)
MsgBox i
End Sub
上述代码执行没有得到预想的12,返回值仍然为初始值3。
悬疑 玄幻 科幻 灵异 鬼怪 编程词典 vb bccd