【问题标题】:I'm having problems assigning values to an array I created in vb. Seems really simple but I can't figure out what I'm doing wrong我在将值分配给我在 vb 中创建的数组时遇到问题。看起来很简单,但我不知道我做错了什么
【发布时间】: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 OnOption Strict On。它会照亮几个可以改进的地方,这样做你可能会在不经意间纠正你的问题。
  • 例如,在N_secteion = txtNumSections.Text 中,您可能会得到一个数字,但它是字符串类型的。至少稍后您将其用作整数:For intIndexGrade = 1 To N_secteion - 1。这应该明确地完成,即使只是为了确保它按预期工作,而现在它正在被隐式转换,这有时会导致应用程序出现意外行为。
  • @laancelot。啊!我懂了。我是这个平台的新手。我会马上发布。

标签: arrays vb.net


【解决方案1】:
    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
        input_info(intIndexGrade - 1, 0) = Grade(intIndexGrade)
        ListBox1.Items.Add(input_info(intIndexGrade - 1, 0).ToString())
    Next

所以问题是我循环 intIndexGrade 的次数不够多。更正此问题后,ListBox 开始填充数组变量的所有值,因为它仅在循环完成后才会这样做。

【讨论】:

    猜你喜欢
    • 2012-01-10
    • 1970-01-01
    • 2012-05-19
    • 1970-01-01
    • 2021-02-09
    • 1970-01-01
    • 2021-08-24
    • 2021-07-31
    • 1970-01-01
    相关资源
    最近更新 更多