我试图在两个表单之间传递一个对象(基本上是对当前登录用户的引用)。目前,我在登录表单中有一些东西:

private ACTInterface oActInterface;

public void button1_Click(object sender, EventArgs e)
    {
        oActInterface = new ACTInterface(@"\\actserver\Database\Premier.pad",this.textUser.Text,this.textPass.Text);

        if (oActInterface.checkLoggedIn())
        {
            //user has authed against ACT, so we can carry on
            clients oClientForm = new clients(oActInterface);
            this.Hide();
            oClientForm.Show();
        }
        else...

在下一个表格(客户)上,我有:

public partial class clients : Form
{
    private ACTInterface oActInt {get; set;}

    public clients(ACTInterface _oActInt)

...这导致我得到:

Error   1   Inconsistent accessibility: 
parameter type 'support.ACTInterface' is less accessible than method    
'support.clients.clients(support.ACTInterface)'  
c:\work\net\backup\support\support\clients.cs   20  16  support

我真的不明白问题是什么-这两个字段都是私有的,并且由相关的公共方法从表单访问。谷歌搜索并没有真正的帮助,因为它只是指出一个元素是公共的,另一个是私有的,这不是这里的情况。

有人帮助吗?


当前回答

你可以把Parameter(类的可访问性较低)作为对象,然后把它作为关键字转换为你的类。

其他回答

在我的情况下,我在一个文件中已经完成类,我在另一个文件中传递该类的构造函数的实例。 问题是在声明类时没有使用公共修饰符:

我可以把它改成公共类MyClass {}

公共类客户端的构造函数是公共的,但它有一个类型为ACTInterface的参数是私有的(它嵌套在类中?)你不能这么做。您需要使ACTInterface至少像客户机一样可访问。

当我收到这个错误时,我有一个“helper”类,我没有声明为公共,在使用“helper”类的类内部导致了这个问题。使“helper”类公共解决了这个错误,如下所示:

公共运行ServiceClass { public ServiceClass(helper类_helper) {} }

public class HelperClass{} //注意解决问题的public HelperClass。

这可能会帮助其他遇到这种情况的人。

你可以把Parameter(类的可访问性较低)作为对象,然后把它作为关键字转换为你的类。

support - actinterface类型的可访问性是什么?这个错误表明它不是公开的。

如果签名的某些参数类型不是公共的,则不能公开公共方法签名。不可能从外部调用该方法,因为调用者无法构造所需的参数。

如果你支持我。将删除此错误的ACTInterface。或者,如果可能的话,减少表单方法的可访问性。