我大体看了一下
Dim a(), b(), c(), d() As String
这一行的几个数组只进行了声明而没有初始化。
你要注意一个问题,如果你要用一个数组,首先要指定它的初始大小,比如
Dim s(10) As String
这样子,这个数组才能进行使用。
如果一开始没有指定大小,比如这样:
Dim s() As String
这个数组是不能使用的,因为没有初始化。
要使用它,有两种方法,一种是 ReDim
Dim s() As String
ReDim s(10)
或者,用New关键字初始化数组对象
Dim s() As String
s = New String(10) {}
注意,后面的大括号是必需的,否则编译器会认为你在调用String类的构造函数
如果你像下面这样初始化:
s= New String() {}
将等价于
s = New String(0){}
这个数组只有0个元素,你要是想用它还得ReDim
点击Button2,将创建线程执行S1过程 , 在Button2_Click事件中是否执行了 ReDim Preserve a(m) ?
若第一次未初始化a()数组 那么在S1过程中a(n) (会报错) ,若没报错 ,那么 执行W1(a(n))时传入的参数是空值 ,执行 t = Split(x, "——") 时会未将对象引用设置到对象的实例.
Dim a(), b(), c(), d() As String
没初始化值
Dim str() As String
Dim d As String = str(0)
跟这个差不多