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



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

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一样起作用,这是真的吗?

本质上是的,通过重载,您将拥有myClass::SomeProp和mySubClass::SomeProp

给定 mySubClass 的实例,对 SomeProp 的调用将解析为 mySubClass::SomeProp 作为最佳匹配。 但是,由于它是重载而不是阴影,因此类似

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

不会编译,因为它缺少重载装饰器。

最新更新