我的班级中有2个构造函数,例如以下代码:
class Foo
{
private int a {get; set;}
public Foo(int val)
{
a = val;
}
public Foo() : this(0) {}
}
Run Code Online (Sandbox Code Playgroud)
我在列表中使用该类,所以当我像这样调用列表的构造时:
L = new List<Foo>()它可以工作,但是如果我想L = new List<Foo>(10)在示例中使用重载的构造函数,我将无法使用,那么有人可以向我展示如何做到这一点吗?谢谢。
Jon*_*eet 10
构造一个时List<Foo>,您根本不会调用Foo构造函数-根本不会Foo创建任何对象。这段代码:
L = new List<Foo>();
Run Code Online (Sandbox Code Playgroud)
构造一个空的 List<Foo>。如果要添加任何元素,可以这样:
L.Add(new Foo());
L.Add(new Foo(10));
Run Code Online (Sandbox Code Playgroud)
或使用集合初始化程序:
L = new List<Foo>
{
new Foo(),
new Foo(10)
};
Run Code Online (Sandbox Code Playgroud)
这样您就可以根据Foo自己的喜好构造对象(或使用现有的引用)。
| 归档时间: |
|
| 查看次数: |
120 次 |
| 最近记录: |