public class Test
{
private List<string> _nameList;
private List<string> _idList = new List<string>();
public Test()
{
_nameList = new List<string>();
}
}
8 个解决方案
#1
private List<string> _idList = new List<string>();
这句在构造函数之前执行,这是你必须注意的事情。
这句在构造函数之前执行,这是你必须注意的事情。
#2
没区别
编译器会自动给你移到构造函数里去
编译器会自动给你移到构造函数里去
#3
楼上两位矛盾了⊙﹏⊙
#4
一点都不矛盾
编译器会把那些代码插到你写的构造函数的代码的前面
#5
执行顺序的问题,不过结果都是一样的
先不考虑继承关系,执行顺序为:
1.静态字段
2.静态构造方法
3.实例字段
4.实例构造方法
先不考虑继承关系,执行顺序为:
1.静态字段
2.静态构造方法
3.实例字段
4.实例构造方法
#6
加个注释
1.静态字段(执行且仅执行一次,线程安全)
2.静态构造方法(执行且仅执行一次,线程安全)
#7
学习了,谢谢各位,结贴。
#8
+1
#1
private List<string> _idList = new List<string>();
这句在构造函数之前执行,这是你必须注意的事情。
这句在构造函数之前执行,这是你必须注意的事情。
#2
没区别
编译器会自动给你移到构造函数里去
编译器会自动给你移到构造函数里去
#3
楼上两位矛盾了⊙﹏⊙
#4
一点都不矛盾
编译器会把那些代码插到你写的构造函数的代码的前面
#5
执行顺序的问题,不过结果都是一样的
先不考虑继承关系,执行顺序为:
1.静态字段
2.静态构造方法
3.实例字段
4.实例构造方法
先不考虑继承关系,执行顺序为:
1.静态字段
2.静态构造方法
3.实例字段
4.实例构造方法
#6
加个注释
1.静态字段(执行且仅执行一次,线程安全)
2.静态构造方法(执行且仅执行一次,线程安全)
#7
学习了,谢谢各位,结贴。
#8
+1