【发布时间】:2020-08-20 19:58:58
【问题描述】:
所以我创建了一个 n x 2 数组来保存一些我将在运行时输入的数字。然后我继续添加将值添加到数组的代码。我想知道数组是否被正确填充,所以我添加了代码来填充每个输入的数字的列表框。但是,我认为数组并没有像我认为的那样填充,因为列表框没有更新。相关代码部分如下;
N_secteion = txtNumSections.Text
Dim input_info(,) As Double = New Double(N_secteion - 1), 1) {}
Dim intIndexGrade As Integer
Dim intIndexLength As Integer
For intIndexGrade = 1 To N_secteion - 1
input_info(intIndexGrade - 1, 0) = Grade(intIndexGrade)
ListBox1.Items.Add(input_info(intIndexGrade - 1, 0).ToString())
Next
Grade(intIndexGrade) 在循环继续时从表单上的另一个列表框中提取值。这似乎不是问题,因为我已经对其进行了监控,并且似乎可以很好地获取这些值。我真的很感激一些帮助。太久了。
【问题讨论】:
-
您不必猜测事情是否按应有的方式工作,并且您不必输出数据以确保它最初设置或它的值是您所期望的。对于这样的事情,您将使用 Visual Studio 中的内置调试器。它将允许您简单地检查数组变量并查看它包含的数据(如果有)。 docs.microsoft.com/en-us/visualstudio/debugger/…
-
@Anu6is,所以我实际上确实使用监视窗口通过将断点放在“Next”来监视数组变量,因此对于第一个循环,intIndexGrade = 1,我能够监控数组变量是否输出了正确的值。然后我把断点放在“Next”下面,这意味着循环已经完成。这就是我注意到数组变量输出“0”的地方,即使 Grade(intIndexGrade) 产生了正确的值,所以它应该只是将它分配给数组变量。
-
我建议你使用
Option Explicit On和Option Strict On。它会照亮几个可以改进的地方,这样做你可能会在不经意间纠正你的问题。 -
例如,在
N_secteion = txtNumSections.Text中,您可能会得到一个数字,但它是字符串类型的。至少稍后您将其用作整数:For intIndexGrade = 1 To N_secteion - 1。这应该明确地完成,即使只是为了确保它按预期工作,而现在它正在被隐式转换,这有时会导致应用程序出现意外行为。 -
@laancelot。啊!我懂了。我是这个平台的新手。我会马上发布。