【问题标题】:'PlotBackBrush' cannot expose type 'IRectangleBrush' outside the project through class 'PlotSurface2D'“PlotBackBrush”无法通过类“PlotSurface2D”在项目外部公开类型“IRectangleBrush”
【发布时间】:2014-11-15 00:33:26
【问题描述】:

我有一个界面

Public Interface IPlotSurface2D
   WriteOnly Property PlotBackBrush() As IRectangleBrush
End Interface

这是实现接口的类

Public Class PlotSurface2D
    Implements IPlotSurface2D

    Public WriteOnly Property PlotBackBrush() As IRectangleBrush _
        Implements IPlotSurface2D.PlotBackBrush

        Set(value As IRectangleBrush)
            Me.plotBackBrush_ = DirectCast(value, IRectangleBrush)
            Me.plotBackColor_ = DirectCast(Nothing, Object)
            Me.plotBackImage_ = DirectCast(Nothing, Drawing.Bitmap)
        End Set
    End Property
End Class

我得到以下编译错误:

错误 86 'PlotBackBrush' 无法通过类 'PlotSurface2D' 在项目外部公开类型 'IRectangleBrush'。

我该如何解决这个问题?

【问题讨论】:

  • 不客气。另外,由于您是 StackOverflow 的新手,我想通知您,您可以通过勾选答案旁边的勾号来为好的答案投票并接受对您帮助最大的答案。在本网站上,点赞或接受的答案都算作“感谢”。

标签: vb.net inheritance interface


【解决方案1】:

可能IRectangleBrush 不公开。公开。

注意:由于接口IPlotSurface2D 是公共的,它想要公开(并且必须公开)它公开引用的所有类型。作为一般规则,我们可以说,由另一种类型公开的任何类型的访问级别不得比其他类型的访问级别更严格。

【讨论】:

  • 谢谢你的工作..是我粗心没有检查界面。
【解决方案2】:

对于错误“无法通过模块暴露类型在项目之外...”

我在定义类型的“模块”之前插入了“公共”:结构...结束结构

【讨论】:

  • 难以置信。是的,公共模块需要明确声明为公共的。
猜你喜欢
  • 2016-12-06
  • 2013-03-18
  • 1970-01-01
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
相关资源
最近更新 更多