可能重复:
Best Practice: Initialize class fields in constructor or at declaration?
请做任何有利的事情
public class MyClass
{
List<string> list;
public MyClass
{
list = new List<string>();
}
}
执行此操作
public class MyClass
{
List<string> list = new List<string>();
public MyClass
{
}
}
我猜它都是一样的。因此,构造函数比这些简单的情况更重要
答案 0 :(得分:0)
在第一个示例中,您将精确选择列表初始化的时间。如果构造函数中还有其他代码,则负责将初始化定位在正确的位置。
此外,如果类具有基类,则在初始化列表之前将调用基类构造函数。
答案 1 :(得分:0)
首先,所有初始化程序按从派生到基数的顺序运行,然后所有构造函数按从基数到派生的顺序运行。
阅读Eric Lippert撰写的this文章。