2015-04-16 101 views
0

获取以下错误。我试图在点击第一个表单上的按钮后跳转到新表单。我需要传递一个类对象的列表。不一致的可访问性:参数类型不易访问

错误1可访问性不一致:参数类型 'System.Collections.Generic.List' 比方法更少可访问 'Preferred_Customer.AddCustomer.AddCustomer(System.Collections.Generic.List)' C:\用户\罗恩\文件\视觉 工作室2013 \项目\优选的客户\优选 客户\ AddCustomer.cs 18 16优惠顾客

这里是代码创建的形式;

private void addCustomerButton_Click(object sender, EventArgs e) 
{ 
    AddCustomer myAddCustomer = new AddCustomer(preferredCustomerList); 
    myAddCustomer.ShowDialog(); 
} 

这是来自AddCustomer的代码;

namespace Preferred_Customer 
{ 
public partial class AddCustomer : Form 
{ 
    private List<PreferredCustomer> addCustomerList; 

    public AddCustomer(List<PreferredCustomer> inPreferredCustomerList) 
    { 
     InitializeComponent(); 
     addCustomerList = inPreferredCustomerList; 

    } 

有人能说出我错过了什么吗?

+0

“PrefferedCustomer”类定义在哪里?如果它不公开,那就需要。 –

+0

PreferredCustomer类是否为私人类? – rjdevereux

回答

2

PrefferedCustomer从内部更改为公共。 (我猜PrefferedCustomer是内部的,除非内的另一个类的声明) 或改变AddCustomerinternal匹配可进入等级

internal partial class AddCustomer : Form 
1

这个错误来自试图在一个水平暴露在一个类的类型更“开放“而不是它宣布的那个。例如:

internal interface ISomethingManager { 
    // ... 
} 

public interface IDoSomething { 
    public void DoSomething(ISomethingManager manager); 
} 

在这个例子中ISomethingManager是内部的,但你在公共​​揭露它作为一个方法参数。如果另一个组合想要拨打IDoSomething.DoSomething(),则需要知道约ISomethingManager,这在内部是不可能的。

相关问题