【问题标题】:.net error: Implementing property must have matching 'ReadOnly' or 'WriteOnly' specifiers.net 错误:实现属性必须具有匹配的“ReadOnly”或“WriteOnly”说明符
【发布时间】:2011-07-12 02:33:30
【问题描述】:

尝试在 vb.net 中实现接口时出现此错误:

Public Interface IFoo
   ReadOnly Property Foo() As String
End Interface

Public Class myFoo
  Implements IFoo

  Public ReadOnly Property Foo() As String
     Get
       return "Foo"
     End Get
  End Property
...
End Class

缺少什么?

【问题讨论】:

标签: vb.net interface


【解决方案1】:

您需要告诉代码myFoo.Foo 实现了IFoo.Foo(注意添加的Implements IFoo.Foo):

Public Interface IFoo
    ReadOnly Property Foo() As String
End Interface

Public Class myFoo
    Implements IFoo

    Public ReadOnly Property Foo() As String Implements IFoo.Foo
        Get
            Return "Foo"
        End Get
    End Property
End Class

据我所知,VB.NET 不像 C# 那样支持隐式接口实现。

【讨论】:

  • 在无意中发现您的答案之前,我一直对这个发疯。谢谢!
  • 所以如果类和接口中的属性匹配。那么它不会自动匹配它们吗?
  • @Steve:不,据我所知 VB 不会为你这样做;您需要明确声明类型成员实现了接口成员。
  • 呼应@Michael 对此的看法,但有点不情愿喜欢这种句法风格!无关 - 对我很有帮助的答案,+1
  • 哇,VB 确实让您的代码[过度] 富有表现力。这可能是件好事。
猜你喜欢
  • 2012-11-08
  • 2011-10-09
  • 2013-03-04
  • 2012-02-01
  • 1970-01-01
  • 2010-09-24
  • 1970-01-01
  • 1970-01-01
  • 2012-08-20
相关资源
最近更新 更多