初始化共享属性的值

时间:2015-07-09 14:30:28

标签: vb.net

我想使用一个计数器来计算从一个类创建多少个对象,所以我认为共享属性是可行的方法。但是,VB并不喜欢这样说,并且"不能在共享方法或共享成员初始化程序中引用类的实例成员而没有类的明确实例"

Private _Length As Integer = 0
Public Shared Property Length As Integer
    Get
        Return _Length
    End Get
    Set(value As Integer)
        _Length = value
    End Set
End Property

有没有办法初始化共享变量,在这种情况下为零,并使Property仍然正常运行。我使用了Java get / set方法(getLength()/ setLength())并且工作正常,但我确信VBers会不满意。

此外,使用两个变量来获取/设置实际使用的变量似乎有点多余。我知道为什么它会在VB方法中使用,因为发生了递归,但看起来确实很奇怪。

1 个答案:

答案 0 :(得分:3)

还必须共享支持字段_Length

Private Shared _Length As Integer = 0
  

使用两个变量来获取/设置一个实际使用的变量似乎有点   多余的。

您没有两个变量_Length,一个属性只管理您如何访问该变量。请注意,即使auto implemented properties这样使用支持字段:

Public Property Length As Int32

你只是没有看到它,因为它会为你生成。