2014-03-26 63 views
1

我正在努力与数组。变量数组(非变体)

根据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变量1的值相同TextBox1.Text不是数学后的值。

+0

想指出你有拼写错误公众分享VarriablesArray()为双*注意两个R 但你通过VariablesArray – Sorceri

+0

引用它转换单元可能会非常棘手。如果用户多次点击转换按钮,您会得到不同的数字,因为舍入误差加起来。如果用户倾向于执行此操作,您可能需要考虑另一种方法。 –

+0

这里也有很多隐式的转换/转换。而且我不确定将所有内容都设为静态/共享的关键。 –

回答

1

直到这里它的工作原理,但是当我MsgBox Variable1它的值与TextBox1.Text的值不是数学后的值。

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

如果你想这回去到Variable1,你需要将它复制回:

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

里德的解释是正确的。你可以做的一件事是创建一个新的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()