'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'的主要内容,如果未能解决你的问题,请参考以下文章

''0x6bcb197b''指令引用的''0xo7d58bc4''内存。该内存不能为''read''。

输入'promise.Promise '不能指定为'承诺' “

linux在子进程中,client与server进行socket通信,客户端socket断开后不能与server连接,求高手指点

类型'字符串|的参数用户'不能分配给'string'类型的参数

SwiftUI误导性错误:'Int'不能转换为'CGFloat'

当尝试`uint mask = ~0;`时,常量值'-1'不能转换为'uint'