情况是这样的:
我定义了一个类CheatEngineConfigReadAndWrite
然后用如下代码初始化了数组(可见性为PUBLIC)
Dim ConfigInfo() As CheatEngineConfigReadAndWrite
ReDim ConfigInfo(mIndex) 'mIndex是常量
而后调用如下函数(无关部分已省略)
private sub SetValue ()
Dim CI As CheatEngineConfigReadAndWrite
For Each CI In ConfigInfo
CI.ThenEditOver = True '该属性默认为假
Next
end sub
接下来就比较郁闷,为什么上面的代码没有更改ThenEditOver属性呢?private sub GetValue ()
Dim CI As CheatEngineConfigReadAndWrite
For Each CI In ConfigInfo
debug.print(CI.ThenEditOver) '该属性默认为假
Next
end sub
输出结果非常令人满意,,全是False。请高人指点啊开始我以为我定义CI时使用NEW关键字不对,可是去掉NEW还是这德行。类内部是这样实现该属性的:
Private m_ThenEditOver As Boolean '私有变量
Public Property ThenEditOver() As Boolean '公有属性
Get
Return m_ThenEditOver
End Get
Set(ByVal value As Boolean)
m_ThenEditOver = value
End Set
End Property难道更改ConfigInfo()里某个元素的属性使用其他方法吗??
我定义了一个类CheatEngineConfigReadAndWrite
然后用如下代码初始化了数组(可见性为PUBLIC)
Dim ConfigInfo() As CheatEngineConfigReadAndWrite
ReDim ConfigInfo(mIndex) 'mIndex是常量
而后调用如下函数(无关部分已省略)
private sub SetValue ()
Dim CI As CheatEngineConfigReadAndWrite
For Each CI In ConfigInfo
CI.ThenEditOver = True '该属性默认为假
Next
end sub
接下来就比较郁闷,为什么上面的代码没有更改ThenEditOver属性呢?private sub GetValue ()
Dim CI As CheatEngineConfigReadAndWrite
For Each CI In ConfigInfo
debug.print(CI.ThenEditOver) '该属性默认为假
Next
end sub
输出结果非常令人满意,,全是False。请高人指点啊开始我以为我定义CI时使用NEW关键字不对,可是去掉NEW还是这德行。类内部是这样实现该属性的:
Private m_ThenEditOver As Boolean '私有变量
Public Property ThenEditOver() As Boolean '公有属性
Get
Return m_ThenEditOver
End Get
Set(ByVal value As Boolean)
m_ThenEditOver = value
End Set
End Property难道更改ConfigInfo()里某个元素的属性使用其他方法吗??
dim i as integer
for i = 0 to ConfigInfo().lenght-1
ConfigInfo(i).ThenEditOver = True
next郁闷ING不测试了,睡觉先,弄大半夜了,代码检查了N多次………………
Dim CI As CheatEngineConfigReadAndWrite
For Each CI In ConfigInfo
ci=new CheatEngineConfigReadAndWrite '这个加上试试
CI.ThenEditOver = True '该属性默认为假
console.writeLine(CI.ThenEditOver)
NextNext
end sub
Dim i As Short
For i = 1 To UBound(cs)
cs(i) = New Class1 '<----这里
cs(i).b = True
Next For i = 1 To UBound(cs)
Console.WriteLine(cs(i).b)
Next
当时,我是这样声明的
Dim CI As New CheatEngineConfigReadAndWrite
是不行的啊。难道NEW必须在FOR EACH里面才好?晕ING~~~~~~~~~~结贴了。。
那个帖子也结了~~~
难道。。需要用方法…………直接用属性来操作不可以吗。迷糊~~~~嘿嘿,那个数组是REDIM 的,然后挨个赋值出来的。。初始化它的函数是这个
Private Sub GetConfigInfo()
Dim mDirTmp() As String, mDirStr As String, mFileTmp() As String, mFileStr As String, mIndex As Integer
mDirTmp = System.IO.Directory.GetDirectories(My.Application.Info.DirectoryPath())
ListView2.Items.Clear()
If Not (mDirTmp Is Nothing) Then
For Each mDirStr In mDirTmp
mFileTmp = System.IO.Directory.GetFiles(mDirStr)
For Each mFileStr In mFileTmp
ReDim ConfigInfo(mIndex)
ConfigInfo(mIndex) = New CheatEngineConfigReadAndWrite
ConfigInfo(mIndex).FilePathName = mFileStr
ConfigInfo(mIndex).ReadConfig()
ListView2.Items.Add(ConfigInfo(mIndex).WindowName)
ListView2.Items(ListView2.Items.Count - 1).SubItems.Add(mFileStr.Substring(mFileStr.LastIndexOf("\") + 1))
ListView2.Items(ListView2.Items.Count - 1).SubItems.Add(ConfigInfo(mIndex).CodeLen)
ListView2.Items(ListView2.Items.Count - 1).SubItems.Add(ConfigInfo(mIndex).HookKey)
ListView2.Items(ListView2.Items.Count - 1).SubItems.Add(ConfigInfo(mIndex).LookEdit)
ListView2.Items(ListView2.Items.Count - 1).SubItems.Add(ConfigInfo(mIndex).FunctionName)
mIndex = mIndex + 1
Next
Next
End If
End Sub
。这个问题放这先,o(∩_∩)o...哈哈反正解决了,以后碰见不用EACH循环就得了。。弄不明白了我……………………改天再看看,今天累着了。。支持不到半夜2点了。哈