属性让我们创建一个不需要的变量

时间:2018-03-23 08:56:26

标签: vba excel-vba variables properties excel

我无法在任何地方找到任何东西,所以这就是我的问题(虽然它主要是化妆品):

我有一个类被用作自定义数据类型,但当我查看本地或观察窗口时,我看到每个Property Let都创建了一个额外的变量,这会使窗口混乱冗余变量和信息(并且可能需要额外的空间)。

示例:

在课程模块Class1中:

Private data As Integer

Property Get X() As Integer
    X = data
End Property

Property Let X(ByVal Value As Integer)
    data = Value
End Property

并测试:

Sub Test1()

Dim TestClass As Class1
Set TestClass = New Class1

TestClass.X = 100

End Sub

在本地窗口中:

locals window

我应该以某种方式回收这个额外的变量,还是我做错了什么呢?

---如果查看库存Excel对象(如工作表),则无任何重复变量。

编辑:为了澄清,我想知道是否有办法在本地/观察窗口中隐藏该属性,以便更容易导航。

1 个答案:

答案 0 :(得分:2)

没关系。 data是您的私有变量,X只是属性。这没什么不对的。但是你应该考虑私有变量的命名约定,setter和getter应该以某种方式保持一致,例如:

'Member variable, pName - private Name
Private pName As String

'Properties
Property Get Name() As String
    Name = pName
End Property

Property Let Name(val As String)
    pName = val
End Property