";可访问性不一致:基类的可访问性不如类";

本文关键字:访问 quot 不一致 基类 | 更新日期: 2023-09-27 18:29:19

在做一项老师几乎一步一步写给我们的作业时,我有这4个错误已经有一段时间了,但我忽略了它们。

基本上,我有一个父类Menus和子类PauseMenu、MainMenu、DifficultyMenu和HelpMenu。我得到的四个错误是,父类比子类更难访问。按照指示,菜单是抽象的,而子菜单是公共的。

    #region Constructors
    protected Menu(MenuName menuName, Texture2D background, Rectangle drawRectangle)
    {
        this.menuName = menuName;
        this.background = background;
        this.drawRectangle = drawRectangle;
    }
    public Menu()
    {
    }
    #endregion

由于这个原因,我们的教授特别建议添加一个没有参数的公共构造函数,但我的IDE仍然告诉我这是错误的。

关于如何解决这个问题有什么想法吗?

这是主菜单的构造函数

public MainMenu(Rectangle drawRectangle)
    : base(MenuName.MainMenu, SpriteDictionary.GetSprite("mainMenuBackground"), drawRectangle)
{}

这是类的申报单

namespace WackyPong.Menus
{
    public abstract class Menu
    {
        //all my code
    }

";可访问性不一致:基类的可访问性不如类";

如注释中所述,此错误通常与类的可访问性有关。这可能会导致一个问题,因为您通过public而不是基类型公开派生类型,因此类型转换和继承成员会进入"我们将这些成员公开给其他dll吗?"的灰色区域,该区域因拒绝构建项目而被此错误消除。

鉴于抽象基类确实是公共的,您是否确保将其应用于您创建的所有类型?我注意到在构造函数中使用了MenuName对象。

请注意,如果您有任何采用或返回未公开类型的公共属性、字段或方法,则也会显示此错误-编译器再次进入"成员已公开,但其签名中包含的类型未公开"区域。

相关文章: