嗨所以我只是在学习VB对OOP的看法。在测试Let
,Get
方法的工作方式时,我创建了这个虚拟类Class1
,显然它无法编译,因为“检测到Ambigious名称:〜”,此错误VBE突出显示类2的第2行(一个将test_property声明为Integer)。
我不明白这是什么样的暧昧?
仅供参考我通过试图用Dim
& Public
这些方法都没有改变任何内容。
见下文Class1
课程:
Option Explicit
Private testing_property As Integer
Public Property Let testing_property(new_value As Integer)
MsgBox "Let Box"
Let testing = new_value
End Property
Public Property Get testing_property(new_value As Integer) As Integer
MsgBox "Get Box"
End Property
我使用以下测试Sub来调用它:
Sub Test()
Dim test_Class As Class1
Set test_Class = New Class1
With test_Class
.testing_property = "1"
Debug.Print .testing_property
End With
End Sub
答案 0 :(得分:3)
您的私有属性变量和let和get公共过程属性的重复声明。您应该为变量命名
Private itesting_property As Integer
在获得之前,你也有了。您应该在编写之前指定一个值。此外,你的Get()不应该接受一个变量并且变暗为整数,你的Let()应该接受一个变量作为整数而不是变暗。
Public Property Get testing_property() As Integer
MsgBox "Get Box"
testing_property = itesting_property
End Property
Public Property Let testing_property(new_value As Integer)
MsgBox "Let Box"
itesting_property = new_value
End Property