我正在尝试将列表从一个表单类传递到另一个表单类。这是代码:
List<Branch> myArgus = new List<Branch>();
private void btnLogin_Click(object sender, EventArgs e)
{
// Get the selected branch name
string selectedBranch = lbBranches.SelectedItem.ToString();
for (int i = 0; i < myArgus.Count; i++)
{
if (myArgus[i]._branchName == selectedBranch)
{
// Open the BranchOverview form
BranchOverview branchOverview = new BranchOverview(myArgus[i]);
branchOverview.Show();
}
else
{
// Branch doesn't exist for some reason
}
}
}
然后在我的BranchOverview
课程中:
List<Branch> branch = new List<Branch>();
public BranchOverview(List<Branch> myArgus)
{
InitializeComponent();
branch = myArgus;
}
当我运行代码时,我收到此错误:
Inconsistent accessibility: parameter type 'System.Collections.Generic.List<Argus.Branch>' is less accessible than method 'Argus.BranchOverview.BranchOverview(System.Collections.Generic.List<Argus.Branch>)'
答案 0 :(得分:43)
您必须声明Branch
是公开的:
public class Branch {
. . .
}
答案 1 :(得分:8)
正如错误消息所示,方法的所有参数的类型必须至少与方法本身一样可访问。
如果您将Branch
类用作公共方法中的参数,则需要将其公开。
public class Branch { .... }
^^^^^^
或者,您可以将方法更改为internal
而不是public
。
internal BranchOverview(List<Branch> myArgus)
^^^^^^^^
答案 2 :(得分:1)
默认情况下,如果不存在private
,则字段的字段为access modifier
...
答案 3 :(得分:1)
BranchOverview
的构造函数是public
,这意味着其形式参数列表中涉及的所有类型也必须是public
。很可能你没有为Branch
提供可访问性规范,即你已经写了
class Branch { ... }
表示Branch
为internal
。
答案 4 :(得分:0)
变化:
List<Branch> myArgus = new List<Branch>();
公开。