在下初来贵地,有一个问题请教各位大虾。
在类模块中添加两个私有属性strTest,intTest如下:
Option Explicit
'保持属性值的局部变量
Private mvarstrTest As String '局部复制
Private mvarintTest As Integer '局部复制
Public Property Let intTest(ByVal vData As Integer)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.intTest = 5
mvarintTest = vData
End Property
Public Property Get intTest() As Integer
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.intTest
Set intTest = mvarintTest
End Property
Public Property Let strTest(ByVal vData As String)
'向属性指派值时使用,位于赋值语句的左边。
'Syntax: X.strTest = 5
mvarstrTest = vData
End Property
Public Property Get strTest() As String
'检索属性值时使用,位于赋值语句的右边。
'Syntax: Debug.Print X.strTest
Set strTest = mvarstrTest
End Property
为什么可以赋值,在私有成员(mvarstrTest,mvarintTest)中可以看到已经赋值,但对其进行取出访问时(如print objTest.intTest)出现编译错误,要求对象的报错信息。如果将set删掉则没有问题。能正常访问,如print objTest.intTest不出错。这是什么原因?