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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了'PlotBackBrush'不能通过类'PlotSurface2D'在项目外暴露类型'IRectangleBrush'相关的知识,希望对你有一定的参考价值。

我有一个界面

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

我怎样才能解决这个问题?

答案

可能IRectangleBrush不公开。把它公之于众。

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

另一答案

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

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

以上是关于'PlotBackBrush'不能通过类'PlotSurface2D'在项目外暴露类型'IRectangleBrush'的主要内容,如果未能解决你的问题,请参考以下文章