C# 在列表创建中调用重载构造函数
我的类中有2个构造函数,如下代码所示:C# 在列表创建中调用重载构造函数,c#,C#,我的类中有2个构造函数,如下代码所示: class Foo { private int a {get; set;} public Foo(int val) { a = val; } public Foo() : this(0) {} } 我在列表中使用这个类,所以当我调用列表的构造时,如下所示: L=new List()它可以工作,但是如果我想使用重载构造函数L=new List(10)在示例中,我不能,有人能告诉我怎么做吗? 谢谢。当
class Foo
{
private int a {get; set;}
public Foo(int val)
{
a = val;
}
public Foo() : this(0) {}
}
我在列表中使用这个类,所以当我调用列表的构造时,如下所示:
L=new List()
它可以工作,但是如果我想使用重载构造函数L=new List(10)
在示例中,我不能,有人能告诉我怎么做吗?
谢谢。当您构建
列表时,您根本没有调用Foo
构造函数-根本没有创建Foo
对象。此代码:
L = new List<Foo>();
或使用集合初始值设定项:
L = new List<Foo>
{
new Foo(),
new Foo(10)
};
L=新列表
{
新Foo(),
新富(10)
};
这允许您以自己喜欢的方式构造Foo
对象(或使用现有引用)。执行以下操作时
L = new List<Foo>();
希望有帮助。新建列表(10)
实例化一个容量为10的空列表。如果希望列表中填充单个Foo
,调用10
作为构造函数参数,请使用newlist{newfoo(10)}
。如果您想要有一个只实例化Foo
s和10
作为值的列表,那么必须使用某种工厂方法或包装类。
L = new List<Foo>();
L.Add(new Foo(100));
L.Add(new Foo());