1 Public Class Class1
2 Dim int1 As Integer = 0
3 Dim chr1 As Char
4 Sub New()
5 chr1 = "a"c
6 End Sub
7 Public Sub suba()
8 Dim classtest As New Class1
9 classtest.int1 = 0
10 MsgBox(classtest.int1.ToString, MsgBoxStyle.Information, "")
11
12 End Sub
13
14End Class
我断点跟踪,在程序的其他地方有一句: dim classtest as new class1,执行好这句后跳到上面语句行的顺序是:
4-->2->5->跳出
为什么类成员 初始话会在构造函数(new())之前执行呢?
2 Dim int1 As Integer = 0
3 Dim chr1 As Char
4 Sub New()
5 chr1 = "a"c
6 End Sub
7 Public Sub suba()
8 Dim classtest As New Class1
9 classtest.int1 = 0
10 MsgBox(classtest.int1.ToString, MsgBoxStyle.Information, "")
11
12 End Sub
13
14End Class
我断点跟踪,在程序的其他地方有一句: dim classtest as new class1,执行好这句后跳到上面语句行的顺序是:
4-->2->5->跳出
为什么类成员 初始话会在构造函数(new())之前执行呢?
2 Dim int1 As Integer = 0
3 Dim chr1 As Char
4 Sub New()
5 chr1 = "a"c
6 End Sub
和这样的写法是一样的:
2 Dim int1 As Integer
3 Dim chr1 As Char
4 Sub New()
int1 =0
5 chr1 = "a"c
6 End Sub
不知道生成的中间语言是怎么样的。
难到在执行构造函数前要判断其他地方是否有成员变量初始话?
2 num = 0;
End Sub如果先走2,再走1~汗,那不是会出现num为申明的ERROR!