规则:
尽可能地使用初始化器
所谓初始化器,就是在成员变量声明的时候赋值。例如:
public class Foo
{
private string Name = "张三";
}
好处:
1. 初始化器的代码在编译的时候会自动加在所有构造函数中最前面
2. 初始化器的代码会在父类构造函数执行之前执行,并且按照声明的顺序执行
例外:
1. 在初始化器中将成员变量初始化为这种类型的默认值是没有必要的,CLR会在CPU级完成这个动作,额外的初始化只会降低性能,例如:
int x = 0; //没有必要,当声明int x;时,CLR会自动将它赋默认值0
2. 如果多个构造函数对同一个成员变量的初始化动作不一致时,初始化器的使用会为跟初始化器不同的构造函数带来额外的开销
3. 如果对成员变量初始化过程中须处理异常