在VB中,你如何强制继承的类使用的类属性?
-
10-07-2019 - |
题
我试图迫使继承的类使用自定义属性。我创建一个类库在那里谁想要创建一个项目的用户会做,但被强制添加一个属性(或Visual Studio会自动添加默认属性)的继承类。这里是我希望实现的:
BaseClass.vb:
<CustomAttribute(10)> _
Public Class BaseClass
End Class
MyClass.vb:
<CustomAttribute(12)> _
Public Class MyClass
Inherits BaseClass
Public Sub New()
Mybase.New()
End Sub
End Class
于是想到的是,很多当你标记功能“MustOverride”,然后继承的类必须重写功能就好了,我希望属性是“MustOverride”导致继承类指定值。
我已经试过这一点,它会工作,但它是干净多了,如果我可以使用属性:
BaseClass.vb:
Public MustInherit Class BaseClass
Public MustOverride ReadOnly Property CustomAttribute() As String
End Class
MyClass.vb:
Public Class MyClass
Inherits BaseClass
Public Sub New()
Mybase.New()
End Sub
Public Overrides ReadOnly Property CustomAttribute() As String
Get
Return "testing"
End Get
End Property
End Class
感谢您的帮助,您可以提供。
斯科特
解决方案
有在.NET没有办法强迫一个类定义在编译时的属性。你就可以做的最好的是属性是否被定义,如果不是抛出一个异常,在运行时检查。
其他提示
你考虑实现一个接口呢?我假设你正在使用一个基类,你要提供基本的一些代码,如果没有则接口可能会更好取决于您的其它要求:
Interface IBase
ReadOnly Property CustomAttribute() As String
End Interface
它仍然是非常紧凑的,当你在一个新的类键入“器具IBASE” Visual Studio将在代码中填入你。
不隶属于 StackOverflow