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

问题描述 投票:1回答:2

我有一个界面

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

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

vb.net inheritance interface
2个回答
1
投票

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

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


0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.