在VB.net中,两个没有参数的只读属性如何相互超载?

时间:2011-05-13 18:14:45

标签: vb.net properties overloading readonly

我注意到一个类可以“重载”其父类的只读属性,即使在类中不允许这样做。我不明白为什么这是允许的,或者它完成了什么(如果有的话)。

Class myClass
    ReadOnly Property SomeProp As Integer
        Get
            Return 50
        End Get
    End Property
End Class

Class mySubClass
    Inherits myClass    
    Overloads ReadOnly Property SomeProp As Integer
        Get
            Return 12
        End Get
    End Property
End Class

mySubClass.SomeProp的签名与myClass.Prop相同 - 前者如何重载后者?

在实践中,这似乎就像Shadows一样,是真的吗?

1 个答案:

答案 0 :(得分:0)

本质上是的,有了重载,你将拥有myClass :: SomeProp和mySubClass :: SomeProp

给定mySubClass的一个实例,对SomeProp的调用将解析为mySubClass :: SomeProp作为最佳匹配。但是因为它是Overloads而不是Shadows,比如

Readonly Property SomeProp(x as Integer) as integer)
  Get
    Return 13
  End Get
End Property

将无法编译,因为它缺少Overloads装饰器。