3

可能重复:
最佳实践:在构造函数或声明中初始化类字段?

请问你这样做有什么优势吗

public class MyClass
{
  List<string> list;
  public MyClass
  {
     list = new List<string>();
  }
}

在做这个

public class MyClass
{
  List<string> list = new List<string>();
  public MyClass
  {

  }
}

我想都是一样的。因此构造函数比这些简单的情况更重要

4

2 回答 2

0

在第一个示例中,您选择的正是初始化列表的时间。如果构造函数中有其他代码,您负责将初始化定位在正确的位置。

此外,如果该类具有基类,则将在初始化列表之前调用基类构造函数。

于 2012-09-24T07:53:53.930 回答
0

首先所有初始化程序按从派生到基的顺序运行,然后所有构造函数按从基到派生的顺序运行。

阅读Eric Lippert 的这篇文章。

于 2012-09-24T07:54:11.970 回答