我试图迫使继承的类使用自定义属性。我创建一个类库在那里谁想要创建一个项目的用户会做,但被强制添加一个属性(或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将在代码中填入你。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top