vb.net - “PlotBackBrush”无法通过类 'IRectangleBrush' 在项目外部公开类型 'PlotSurface2D'

标签 vb.net inheritance interface

我有一个界面

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

这是实现接口(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

我得到以下编译错误:

Error 86 'PlotBackBrush' cannot expose type 'IRectangleBrush' outside the project through class 'PlotSurface2D'.

我该如何解决这个问题?

最佳答案

可能 IRectangleBrush 不公开。公开。

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

关于vb.net - “PlotBackBrush”无法通过类 'IRectangleBrush' 在项目外部公开类型 'PlotSurface2D',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25950431/

相关文章:

wpf - VSTO Excel 插件中的独立 WPF 表单无法保持焦点

c++ - 遍历基类成员

javascript - 使用 Knockout.js 进行继承

python - 如何用抽象模型定义外键关系?

c# - 密封实现类时覆盖单个接口(interface)方法

java - 在 Java 中更改接口(interface)常量的实用替代方案

c# - 如何在 C# 匿名类型中声明 "Key"字段?

.net - 具有 GUI 前端的 Windows 服务应用程序

mysql - 使用 Visual Studio 或 Visual Basic 在 xampp 中更新 MySQL 数据库

java - 从 List<MyClass> 转换为 List<Interface>