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方法污染每个窗口的代码。
没有显式访问修饰符(并且不是嵌套的)的类被暗示为internal
。
class Layout : Form
. .是内部的,而:
public partial class MainAdminWindow : Layout
. .是公开的(因为您已经明确地这样说过)。把Layout的声明改成这样就解决了这个问题:
public class Layout : Form