为什么构造函数不接受具有较低可访问性的类的参数?

Gui*_*lli 1 c# constructor

这里是:

我有两个表单和一个类,我想通过参数(属于第二个表单的构造函数)将此类的实例从Form1传递给Form2.

public partial class Form1 : Form
{
    Class1 cl = new Class1();

    public Form1()
    {
        InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
        Form2 frm_2 = new Form2(cl);
    }
}
Run Code Online (Sandbox Code Playgroud)

因此,我收到以下错误:

可访问性不一致:参数类型"WindowsFormsApplication1.Class1"比方法更少可访问的"WindowsFormsApplication1.Form2.Form2(WindowsFormsApplication1.Class1)"

public partial class Form2 : Form
{
    public Form2(Class1 c)
    {
        InitializeComponent();
        Class1 c_1 = new Class1();
        c_1 = c;
    }
}
Run Code Online (Sandbox Code Playgroud)

谢谢.

Eri*_*ert 8

Class1是程序集的内部类,但是您正在创建一个公共类的公共方法,该方法将Class1参数作为参数.这就像你公开发布一则广告,说"我们正在接受一份工作申请,但如果你已经在这里工作,你只能获得申请表的副本".它没有任何意义,因此编译器不允许它.