gpt4 book ai didi

c# - 在 C# 窗体之间传递列表

转载 作者:太空宇宙 更新时间:2023-11-03 17:31:46 26 4
gpt4 key购买 nike

我正在尝试学习使用构造函数在两个 C# 窗体之间传递列表,如下所示。在我做的第一个表格上:

List<Cat> myCatList;
//list populating function...
private void btnDisplay_Click(object sender, EventArgs e)
{
df = new DisplayForm(myCatList);
df.Show();
this.Hide();
}

在下一个表单中,我尝试接收如下所示的数据:

List<Cat> catList; 
public DisplayForm(List<Cat> catList)
{
InitializeComponent();
this.catList = catList;
}

但我总是在第二个表单构造函数中出错:

错误 1 ​​可访问性不一致:参数类型“System.Collections.Generic.List<_05_WindowsFormsAppCat.Cat>”的可访问性低于方法“_05_WindowsFormsAppCat.DisplayForm.DisplayForm(System.Collections.Generic.List<_05_WindowsFormsAppCat.Cat>)”

有什么想法吗?

最佳答案

List部分是这里的完整红鲱鱼。如果你的构造函数有一个 Cat,你会遇到完全相同的问题。参数而不是 List<Cat>参数。

你的 Cat类型可能是内部的,因为您还没有将其声明为 public .因此,您不能在 public 成员的签名中使用它,例如:

public DisplayForm(List<Cat> catList)

选项:

  • 制作Cat公开课
  • 让你的DisplayForm构造函数内部

就我个人而言,我完全赞成在实际可行的情况下保持私密性——尽管对于小型项目来说,这不会有太大区别,尤其是对于那些只是一个程序集的应用程序。大多数开发人员倾向于在将所有内容公开方面犯错误,在我看来这是一个错误,但这是一种判断。以上两个选项都可以正常工作...但您至少应该考虑是否希望任何其他程序集知道 Cat类型(或者实际上您是否希望其他程序集中的代码能够调用该构造函数)。

关于c# - 在 C# 窗体之间传递列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19201686/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com