2012-12-05 14 views
5

Od pewnego czasu próbuję to rozgryźć i nie mogę znaleźć odpowiedzi na to pytanie. Nie rozumiem, dlaczego byłoby to niemożliwe. Koduję w VB.NET.Dynamicznie twórz zmienne w VB.NET

Oto mój problem: Potrzebuję dynamicznie tworzyć zmienne i być w stanie odwoływać się do nich później w kodzie.

Szczegóły: liczby zmiennych pochodzi z jakiejś perspektywie matematyki wobec wartości zdefiniowanych przez użytkownika. W tym konkretnym przypadku chciałbym po prostu stworzyć liczby całkowite, chociaż przewiduję, że droga będzie musiała być w stanie to zrobić z dowolną zmienną. Wydaje mi się, że moim największym problemem jest możliwość nazwania ich w wyjątkowy sposób, aby móc później się z nimi zapoznać.

Prosty przykład: Powiedzmy, że mają wartość 10, z których muszę dokonać zmiennych dla. Chciałbym uruchomić pętlę, aby utworzyć te 10 liczb całkowitych. Później w kodzie będę odwoływać się do tych 10 liczb całkowitych.

Wydaje mi się to proste, a jednak nie mogę tego rozgryźć. Każda pomoc będzie bardzo ceniona. Z góry dziękuję.

Odpowiedz

11

Najlepszym sposobem na zrobienie czegoś takiego jest klasa Dictionary(T). Jest ogólny, więc możesz go używać do przechowywania dowolnego rodzaju obiektów. Pozwala na łatwe przechowywanie i pobieranie par kodu/wartości. W twoim przypadku "klucz" będzie nazwą zmiennej, a "wartość" będzie wartością zmienną. Tak na przykład:

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

To jest najbliższe, co najprawdopodobniej będzie potrzebne, ale będziesz potrzebował słownika dla każdego typu danych. – Basic

+1

@Basic Tak, chciałbyś, chyba że chcesz zrezygnować z sprawdzania typu i po prostu uczynić go Słownikiem (Ciąg, Obiekt), w którym to przypadku wartość może być dowolnym typem obiektu. –

+0

Wygląda na to, że to wystarczy. Nigdy wcześniej nie używałam klasy Dictionary (T). Dziękuję za szybką odpowiedź i skomentowany fragment kodu. – Jonathan

2

chcesz użyć List

Dim Numbers As New List(Of Integer) 

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

Pomysł stworzenia pęczek nazwanych zmiennych w locie nie jest coś, co mogą zobaczyć w dowolnym programie VB.Net. Jeśli masz wiele przedmiotów, po prostu przechowuj je na liście, tablicy lub innym typie kolekcji.

0

„Dim tablicy Dim xCount As Integer Dim myVar (xCount) jako ciąg

AddButton zdarzeń. . . xCount + = 1 myVar (xCount) = "Wartość ciągu"

"Będziesz musiał zachować Śledzenie wartości XCount, której należy użyć. 'Zazwyczaj może to być ID w DataSable, z ciągiem Znaczenie