这在带有属性的 VB.NET 中似乎是不可能的,因为属性语句本身必须描述它是否ReadOnly
存在。
在下面的示例中,它不允许我进行ReadWriteChild
编译。我想我可以让父级读/写,然后让 ReadOnlyChild 的设置器不做任何事情,但这似乎有点 hacky。在这种情况下,最好的选择似乎是放弃属性,转而使用 getter/setter 方法。
Public MustInherit Class Parent
Public MustOverride ReadOnly Property Foo() As String
End Class
Public Class ReadOnlyChild
Inherits Parent
Public Overrides ReadOnly Property Foo() As String
Get
' Get the Property
End Get
End Property
End Class
Public Class ReadWriteChild
Inherits Parent
Public Overrides Property Foo() As String
Get
' Get the property.
End Get
Set(ByVal value As String)
' Set the property.
End Set
End Property
End Class