【问题标题】:Can I force the implementors of an Interface to apply certain attribute on a member?我可以强制接口的实现者在成员上应用某些属性吗?
【发布时间】:2013-03-01 01:30:34
【问题描述】:

在 VB.NET 中,我可以执行以下操作吗:

Interface X
    <SomeAttrib> _
    SomeProp as String
End Interface

这将强制任何实现 X 的类也将 SomeAttrib 应用于 SomeProp 并导致编译(或运行)时错误。

Class XBox
    Implements X

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

上面应该给出错误,因为SomeProp 不适用SomeAttrib

【问题讨论】:

    标签: vb.net oop interface attributes


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2011-04-17
      • 2016-11-30
      • 1970-01-01
      • 1970-01-01
      • 2020-06-26
      • 2019-06-19
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      相关资源
      最近更新 更多