c#类的初始化顺序
2010-09-24 23:38
363 查看
类在初始化时的执行顺序,依次如下:
1: 子类静态变量
2: 子类静态构造函数
3: 子类非静态变量
4: 父类静态变量
5: 父类静态构造函数
6: 父类非静态变量
7: 父类构造函数
8: 子类构造函数
对于静态变量与静态构造函数而言, 无论对一个类创建多少个实例,它的静态成员都只有一个副本。 也就是说,静态变量与静态构造函数只初始化一次(在类第一次实例化时)
以下代码:
1 class Class1
2 {
3 public static int Count = 0;
4 static Class1()
5 {
6 Count++;
7 }
8 public Class1()
9 {
Count++;
}
}实例化代码:
Class1 c = new Class1();
Class1 cc = new Class1();
Console.WriteLine(Class1.Count.ToString());
Console.Read();
当弟一次实例化时, Count值变成2, 当第二次实例化时, 则不会执行静态构造函数与静态变量. 此时Count的值变成3. 所以,最后结果Count值为3
1: 子类静态变量
2: 子类静态构造函数
3: 子类非静态变量
4: 父类静态变量
5: 父类静态构造函数
6: 父类非静态变量
7: 父类构造函数
8: 子类构造函数
对于静态变量与静态构造函数而言, 无论对一个类创建多少个实例,它的静态成员都只有一个副本。 也就是说,静态变量与静态构造函数只初始化一次(在类第一次实例化时)
以下代码:
1 class Class1
2 {
3 public static int Count = 0;
4 static Class1()
5 {
6 Count++;
7 }
8 public Class1()
9 {
Count++;
}
}实例化代码:
Class1 c = new Class1();
Class1 cc = new Class1();
Console.WriteLine(Class1.Count.ToString());
Console.Read();
当弟一次实例化时, Count值变成2, 当第二次实例化时, 则不会执行静态构造函数与静态变量. 此时Count的值变成3. 所以,最后结果Count值为3
相关文章推荐
- C#和Java初始化顺序
- c#对象初始化顺序
- C# 初始化顺序
- JAVA C# C/C++之比较学:初始化顺序
- C#对象初始化顺序 总结
- C++和C#对象初始化顺序
- c#对象初始化顺序
- C#多态;父类引用指向子类对象;new和override的区别;new、abstract、virtual、override,sealed关键字区别和使用代码示例;c#类的初始化顺序
- C# 修饰符的访问权限 与 类的初始化顺序
- C#初始化顺序
- C# 类初始化顺序
- c#对象初始化顺序及C++对象初始化顺序
- C# 初始化顺序
- C# 与Java初始化顺序及异同(转)
- c#构造初始化的顺序浅析
- C# 中关于类初始化时内部变量的执行顺序
- C#的类成员初始化顺序
- C# 对象初始化的顺序分析
- C#创建对象时各种初始化属性、字段的方式的执行顺序
- C# 类初始化顺序