我可以强制接口的实现者在成员上应用某些属性吗?

时间:2013-03-13 08:00:19

标签: vb.net oop interface attributes

在VB.NET中,我可以这样做:

Interface X
    <SomeAttrib> _
    SomeProp as String
End Interface

会强制任何实现X的类也在SomeProp上应用SomeAttrib,否则会导致编译(或运行)时错误。

Class XBox
    Implements X

    Public SomeProp as String Implements X.SomeProp
        ...
    End Property
End Interface

上述情况应该会出错,因为SomeProp不适用SomeAttrib

1 个答案:

答案 0 :(得分:2)

不,属性不是接口强制执行的签名的一部分。

如果这是一个自定义属性,您可能想要查找它,检查该类型是否实现了接口并从那里获取属性。

或者您总是可以编写单元测试来验证所有实现,如果它们在您的控制之下 - 在编译时检查和正常执行时间检查之间......