参数的可访问性不如方法
本文关键字:方法 访问 参数 | 更新日期: 2023-09-27 18:28:01
我正试图将列表从一个表单类传递到另一个。这是代码:
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>)'
您必须声明Branch
为公共:
public class Branch {
. . .
}
正如错误消息所说,方法的所有参数的类型必须至少与方法本身一样可访问。
如果将Branch
类用作公共方法中的参数,则需要将其公开。
public class Branch { .... }
^^^^^^
或者,您可以将方法更改为internal
而不是public
。
internal BranchOverview(List<Branch> myArgus)
^^^^^^^^
默认情况下,如果不存在access modifier
,则类的字段为private
。。。
BranchOverview
的构造函数是public
,这意味着其形式参数列表中涉及的所有类型也必须是public
。很可能您没有为Branch
提供可访问性规范,即您已经编写了
class Branch { ... }
这意味着CCD_ 12是CCD_。
更改:
List<Branch> myArgus = new List<Branch>();
公开。