2012-12-05 115 views
5

我一直試圖弄清楚這一點,現在似乎無法找出答案。我不明白爲什麼這是不可能的。我在VB.NET中編碼。在VB.NET中動態創建變量

這裏是我的問題: 我需要動態創建變量,並能夠在後面的代碼上引用它們。

更多詳細信息: 變量的數量來自針對用戶定義值的某些數學運算。在這個特定的情況下,我想創建整數,儘管我預見到需要能夠用任何類型的變量來完成這個任務。看來我最大的問題是能夠以獨特的方式命名它們,以便稍後能夠引用它們。

簡單示例: 假設我的值爲10,其中我需要爲其創建變量。我想運行一個循環來創建這10個整數。在後面的代碼中,我將引用這10個整數。

對我來說這似乎很簡單,但我無法弄清楚。任何幫助將不勝感激。提前致謝。

回答

11

這樣做的最好方法是使用Dictionary(T)類。它是通用的,因此您可以使用它來存儲任何類型的對象。它允許您輕鬆存儲和檢索代碼/值對。在你的情況下,「鍵」將是變量名稱,「值」將是變量值。因此,例如:

Dim variables As New Dictionary(Of String, Integer)() 
variables("MyDynamicVariable") = 10 ' Set the value of the "variable" 
Dim value As Integer = variables("MyDynamicVariable") ' Retrieve the value of the variable 
+0

這是最接近你可能得到,但你需要一個字典爲每個數據類型 – Basic

+1

@Basic是的,你會,除非你想放棄類型檢查,並將其設置爲「Dictionary(Of String,Object)」,在這種情況下,該值可以是任何類型的對象。 –

+0

這看起來像它會做的伎倆。在此之前,我從未使用過Dictionary(T)類。感謝您的快速回復和評論的代碼片段。 – Jonathan

2

你想用創造了一堆在飛行命名變量的List

Dim Numbers As New List(Of Integer) 

For i As Integer = 0 To 9 
    Numbers.Add(0) 
Next 

的想法是不是你可能在任何VB.Net程序,看看。如果您有多個項目,只需將它們存儲在列表,數組或其他類型的集合中即可。

0

「暗淡陣列 昏暗XCOUNT作爲整數 昏暗myVar的(XCOUNT)作爲字符串

Add按鈕事件。 。 。 xCount + = 1 myVar(xCount)=「字符串值」

'您將不得不跟蹤跟蹤xCount值是否等於使用。 '通常可能是一個DataTable中的ID,字符串含義