0

如何将列表传递给构造函数

我试着这样

 private void button1_Click(object sender, EventArgs e)
    {
        step2 st2 = new step2(list);
    }    

但是在构造函数定义中写什么

 public step2()
    {
        InitializeComponent();
    }

欢迎任何建议

4

9 回答 9

5

您需要在构造函数中定义一个参数。例如。

 public step2(List<Type> list) 
 {

 }

您的列表类型在哪里Type,即List<string>

于 2013-05-13T08:54:33.047 回答
3

就是这么简单

public step2(List<string> list)
{
    InitializeComponent();
}

我强烈建议阅读一本关于 c# 基础知识的书

于 2013-05-13T08:55:32.500 回答
2

您需要为接受的step2类型提供一个构造函数List<T>

public step2()
{
    InitializeComponent();
}

应该:

public step2(List<T> list)
{
    //Do something with list
    InitializeComponent();
}

构造函数 C# 编程指南应该派上用场

于 2013-05-13T08:55:50.127 回答
0

答案可能取决于 step2 继承自哪个类或您如何使用它。换句话说-如果您的类 step2 需要默认构造函数,则不应替换构造函数,而应添加另一个构造函数:

public step2()
{
    InitializeComponent();
}

public step2(IList<String> stringList) : this()
{
    // do something with stringList
}
于 2013-05-13T09:04:40.773 回答
0

基本上:

public step2(List<Type> list) {

}

但好的做法是设置IList为参数类型。

public step2(IList<Type> list) {

}

您可以在那里阅读有关传递接口而不是对象的信息。

于 2013-05-13T08:56:30.580 回答
0

您需要将 List 或 List 从中继承的任何类/接口传递给构造函数。例如 IList 也会很好。

public step2(List<T> list){ }


public step2(IList<T> list){ }

T 是一个类型。

于 2013-05-13T08:57:28.960 回答
0

你甚至可以这样做:

public step2(List<T> list){}

将该函数用作所有列表项的通用函数:)

于 2013-05-13T08:59:55.730 回答
0

这应该是您的类构造函数以容纳列表:

public step2(List<T> list)
{
    InitializeComponent();
}

您可以按如下方式调用此类:

List<string> myList = new List<string>();  // You can choose your own data type.
step2 obj = new step2(myList); 
于 2013-05-13T09:00:06.267 回答
0
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);

让我知道这是否有帮助。

于 2013-05-13T09:08:06.357 回答