c#类的初始化顺序
2014-08-02 16:47
218 查看
本文转载:http://www.cnblogs.com/ybhcolin/archive/2010/09/24/1834219.html
c#类的初始化顺序
类在初始化时的执行顺序,依次如下:
1: 子类静态变量
2: 子类静态构造函数
3: 子类非静态变量
4: 父类静态变量
5: 父类静态构造函数
6: 父类非静态变量
7: 父类构造函数
8: 子类构造函数
对于静态变量与静态构造函数而言, 无论对一个类创建多少个实例,它的静态成员都只有一个副本。 也就是说,静态变量与静态构造函数只初始化一次(在类第一次实例化时)
以下代码:
View Code
c#类的初始化顺序
类在初始化时的执行顺序,依次如下:
1: 子类静态变量
2: 子类静态构造函数
3: 子类非静态变量
4: 父类静态变量
5: 父类静态构造函数
6: 父类非静态变量
7: 父类构造函数
8: 子类构造函数
对于静态变量与静态构造函数而言, 无论对一个类创建多少个实例,它的静态成员都只有一个副本。 也就是说,静态变量与静态构造函数只初始化一次(在类第一次实例化时)
以下代码:
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { TestClass ts1 = new TestClass(); } } public class TestClass : TestBase { private string str = ""; //3: 子类非静态变量 public static string str1 = "";//1: 子类静态变量 static TestClass() //2: 子类静态构造函数 { } public TestClass()//8: 子类构造函数 { } } public class TestBase { public string test = "";//6: 父类非静态变量 public static string test1 = "";//4: 父类静态变量 static TestBase() //5: 父类静态构造函数 { } public TestBase()//7: 父类构造函数 { } }
View Code
相关文章推荐
- c#对象初始化顺序
- c#对象初始化顺序及C++对象初始化顺序
- C# 子类和父类的初始化顺序
- C#基础知识-对象初始化顺序
- C# 初始化顺序
- C# 小测试(一):类成员初始化与构造函数执行的顺序
- JAVA C# C/C++之比较学:初始化顺序
- C#和Java初始化顺序
- c#对象初始化顺序
- c#对象初始化顺序实例分析
- c#中对象的初始化顺序
- c#类的初始化顺序
- C# 类初始化顺序
- 初始化顺序 java c# c++
- C#初始化顺序
- c#对象初始化顺序
- C# 类初始化顺序
- C#初始化类时的顺序。
- C#多态;父类引用指向子类对象;new和override的区别;new、abstract、virtual、override,sealed关键字区别和使用代码示例;c#类的初始化顺序
- c#初始化顺序