c#中不一致的可访问性错误can't call base

本文关键字:base call can 错误 不一致 访问 | 更新日期: 2023-09-27 17:51:14

我正在创建一个有很多表单的应用程序,所需的视觉样式需要很多时间才能从设计人员应用,所以我创建了一个名为Layout的类来应用这些属性更改为其Load()方法上的每个表单。

      class Layout : Form
    {
        public void ApplicarLayout(Form frm)
        {
            frm.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(30)))), ((int)(((byte)(30)))), ((int)(((byte)(30)))));
            foreach (Control c in frm.Controls)
            {
                if (c is TextBox)
                {
                    //Apply textBox Formatting
                }
                //Iterate through the controls in the form and add respective format
            }
        }
    }

到目前为止,一切顺利。我的计划是从每个表单继承这个类,只是调用base. applicarlayout()方法。然而,我得到了错误:

Inconsistent accessibility: base class 'EntityClub_.Layout' is less accessible than class 'EntityClub_.MainAdminWindow' 

在这里你可以看到我是怎么做的。

    public partial class MainAdminWindow : Layout
{
    public MainAdminWindow()
    {
        InitializeComponent();
    }
    public void MainAdminWindow_Load(object sender, EventArgs e)
    {
        base.ApplicarLayout(this);//ERROR HERE
    }
}

你知道如何使用继承来实现这个吗?我不想实例化这个类,也不想用layout方法污染每个窗口的代码。

c#中不一致的可访问性错误can't call base

没有显式访问修饰符(并且不是嵌套的)的类被暗示为internal

因此:

class Layout : Form

. .是内部的,而:

public partial class MainAdminWindow : Layout

. .是公开的(因为您已经明确地这样说过)。把Layout的声明改成这样就解决了这个问题:

public class Layout : Form