如何将列表传递给构造函数
我试着这样
private void button1_Click(object sender, EventArgs e)
{
step2 st2 = new step2(list);
}
但是在构造函数定义中写什么
public step2()
{
InitializeComponent();
}
欢迎任何建议
您需要在构造函数中定义一个参数。例如。
public step2(List<Type> list)
{
}
您的列表类型在哪里Type
,即List<string>
就是这么简单
public step2(List<string> list)
{
InitializeComponent();
}
我强烈建议阅读一本关于 c# 基础知识的书
您需要为接受的step2
类型提供一个构造函数List<T>
public step2()
{
InitializeComponent();
}
应该:
public step2(List<T> list)
{
//Do something with list
InitializeComponent();
}
构造函数 C# 编程指南应该派上用场
答案可能取决于 step2 继承自哪个类或您如何使用它。换句话说-如果您的类 step2 需要默认构造函数,则不应替换构造函数,而应添加另一个构造函数:
public step2()
{
InitializeComponent();
}
public step2(IList<String> stringList) : this()
{
// do something with stringList
}
基本上:
public step2(List<Type> list) {
}
但好的做法是设置IList
为参数类型。
public step2(IList<Type> list) {
}
您可以在那里阅读有关传递接口而不是对象的信息。
您需要将 List 或 List 从中继承的任何类/接口传递给构造函数。例如 IList 也会很好。
public step2(List<T> list){ }
public step2(IList<T> list){ }
T 是一个类型。
你甚至可以这样做:
public step2(List<T> list){}
将该函数用作所有列表项的通用函数:)
这应该是您的类构造函数以容纳列表:
public step2(List<T> list)
{
InitializeComponent();
}
您可以按如下方式调用此类:
List<string> myList = new List<string>(); // You can choose your own data type.
step2 obj = new step2(myList);
public class A
{
List<string> listParam1 = new List<string>();
public A(List<string> ListParam)
{
listParam1 = ListParam;
}
}
这就是参数化构造函数的样子。
您可以将其初始化如下:
List<string> param = new List<string>();
param.Add("One");
param.Add("Two");
A obj = new A(param);
让我知道这是否有帮助。