【问题标题】:Array of variables (not variant )变量数组(不是变体)
【发布时间】:2014-03-26 17:36:27
【问题描述】:

我正在努力处理数组。

我有一些双重变量需要根据 RB 按钮转换为 inmm。我对这些没有问题,但是变量的数量非常高,我试图将这些变量放入一个数组中,然后对它们进行倍增或除法。但是当我尝试调用该变量时,该值保持不变。

我注意到数组获取的是变量值而不是变量本身。

有没有办法制作一个变量数组?我做了一些研究,但不幸的是没有任何帮助。

这是我正在做的示例代码

Public Shared Variable1, Varible2 as Double
Public Shared VarriablesArray() as Double

Variable1 = TextBox1.Text
Variable2 = TextBox2.Text

VariablesArray = {Variable1, Variable2}

For i = 0 to VariablesArray.GetUpperBound(0)
VariablesArray(i) = VariablesArray(i)*25.4
Next

直到这里它才起作用,但是当我 MsgBox Variable1 时,它的值与 TextBox1.Text 相同,而不是数学后的值。

【问题讨论】:

  • 想要指出您有拼写错误 Public Shared VarriablesArray() as Double *注意两个 Rs 但您通过 VariablesArray 引用它
  • 转换单位可能很棘手。如果用户多次来回单击转换按钮,您将得到不同的数字,因为舍入误差加起来。如果用户倾向于此操作,您可能需要考虑另一种方法。
  • 这里也有很多隐式转换/转换。而且我不确定将所有内容设为静态/共享的意义。

标签: arrays vb.net vba variables


【解决方案1】:

直到这里它才起作用,但是当我 MsgBox Variable1 它的值与 TextBox1.Text 相同,而不是数学后的值。

这是设计使然。双精度值按值复制到数组中,因此当您对数组进行数学运算时,您不会更改原始变量,只会更改存储在数组中的“副本”。

如果您希望将其返回到 Variable1,则需要将其复制回来:

Variable1 = VariablesArray(0)
Variable2 = VariablesArray(1)

【讨论】:

    【解决方案2】:

    里德的解释是正确的。您可以做的一件事是创建一个新的ListArray 并将修改后的元素放在那里。这是一个例子。我使用了List,但您也可以轻松使用Array 或其他内容。

    Dim variable1 As Double = 25.0
    Dim variable2 As Double = 17.62
    Dim variablesList As List(Of Double) = {variable1, variable2}.ToList
    Dim newList As New List(Of Double)
    
    For Each item As Double In variablesList
      item *= 25.4
      newList.Add(item)
    Next
    
    Console.WriteLine("variable1: " & variable1)
    Console.WriteLine("variable2: " & variable2)
    Console.WriteLine(Environment.NewLine & "variablesList:")
    
    For Each item As Double In variablesList
      Console.WriteLine(item)
    Next
    
    Console.WriteLine(Environment.NewLine & "newList:")
    For Each item As Double In newList
      Console.WriteLine(item)
    Next
    
    Console.ReadLine()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-22
      • 2020-02-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-27
      • 1970-01-01
      • 1970-01-01
      • 2019-12-30
      相关资源
      最近更新 更多