'PlotBackBrush'不能通过类'PlotSurface2D'在项目外暴露类型'IRectangleBrush'

时间:2014-09-20 15:39:09

标签: vb.net inheritance interface

我有一个界面

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'。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

可能IRectangleBrush不公开。公开。

注意:由于接口IPlotSurface2D是公共的,因此它希望公开(并且必须公开)它公开引用的所有类型。作为一般规则,我们可以说,由另一种类型公开的任何类型的访问级别不得比这种类型的访问级别更具限制性。

答案 1 :(得分:0)

对于错误“无法通过模块公开项目外的类型......”

我在'Module'之前插入'public'来定义类型:Structure ... End Structure