可访问性不一致:参数类型比方法更难访问

可访问性不一致:参数类型比方法更难访问

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

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

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

有人帮忙吗?


aluckdog
浏览 552回答 3
3回答

繁花不似锦

的构造public类clients是public但它有类型的参数ACTInterface是private(它嵌套在一个类?)。你不能这样做。你ACTInterface至少要像以下那样使用clients。

慕的地8271018

让课程公开。class NewClass{}是相同的:internal class NewClass{}所以上课必须公开

浮云间

如果声音类型ACTInterface不是public,但使用默认的可访问性internal(如果它是顶级)或private(如果它嵌套在另一种类型)。赋予public修饰符类型可以修复它。另一种方法是同时制作类型和方法internal,如果这是你的意图。问题不在于field(oActInterface)的可访问性,而在于类型ACTInterface本身。
打开App,查看更多内容
随时随地看视频慕课网APP