Speichert Variablennamen in String in VB.NET

stimmen
3

Ich versuche, die Namen einiger Variablen innerhalb von Zeichenketten zu speichern. Beispielsweise:

Dim Foo1 as Integer
Dim Foo1Name as String

' -- Do something to set Foo1Name to the name of the other variable --

MessageBox.Show(Foo1Name &  is the variable you are looking for.)
' Outputs:
' Foo1 is the variable you are looking for.

Dies würde mit einigen Debugging helfen, ich arbeite.

Veröffentlicht am 09/12/2008 um 16:31
quelle vom benutzer
In anderen Sprachen...                            


5 antworten

stimmen
5

Nun, man kann eindeutig festgelegt nur Foo1Name = „Foo1“ - aber ich vermute stark, das ist nicht das, was Sie nach.

Wie würden Sie wissen , welche Variable Sie versuchen , den Namen zu finden? Was ist das größere Bild? Was Sie wollen , kann mit Reflexion möglich sein, wenn wir über nicht-lokale Variablen sprechen sind, aber ich vermute , es ist entweder nicht möglich, oder gibt es einen besseren Weg , um das Problem in erster Linie zu attackieren.

Beantwortet am 09/12/2008 um 16:36
quelle vom benutzer

stimmen
2

Ist dieses Beispiel aus Msdn Reflexion Hilfe bei der Verwendung?

Beantwortet am 09/12/2008 um 16:44
quelle vom benutzer

stimmen
1

Ich denke , das hängt wirklich davon ab , was Sie versuchen , zu debuggen. Zwei mögliche Dinge zu sehen sind die Reflexion und Stacktrace - Klassen. Das heißt , wenn Ihr Programm kompiliert wird, der Compiler und Laufzeit nicht garantieren , dass die Namen , die mit dem ursprünglichen Programm konsistent sein müssen.

Dies ist insbesondere dann der Fall mit Debug vs. Version baut. Der Punkt der PDB - Dateien (Symbole) in der Debug - Version ist , um mehr Informationen über das ursprüngliche Programm enthält. Für native C / C ++ Anwendungen wird dringend empfohlen , dass Sie Symbole für jeden Build (debug + release) der Anwendung erzeugen mit Debugging zu helfen. In .NET ist dies weniger ein Problem , da es Funktionen wie Spiegelung ist. IIRC John Robbins empfiehlt , dass Sie immer zu Symbolen für .NET - Projekte zu generieren.

Vielleicht haben Sie auch Mike Stall finden Blog nützlich und die verwalteten Debugger Proben.

Beantwortet am 09/12/2008 um 16:55
quelle vom benutzer

stimmen
1

Eine Lösung wäre, ein assoziatives Array zu verwenden, um Ihre Variablen zu speichern. Einmal, ich habe dies in .Net, aber ich denke, ich eine benutzerdefinierte Klasse geschrieben, es zu tun.

myArray("foo1Name") = "foo1"

Dann können Sie speichern nur eine Liste Ihrer Variablennamen, oder Sie können, dass in der gleichen Klasse einpacken.

if( myArray(variableName(x)) == whatImLookingFor ) print variableName(x) & "is it"
Beantwortet am 09/12/2008 um 16:45
quelle vom benutzer

stimmen
0

Für die Variablennamen zu finden , finden Sie unter : die Variablennamen an eine Funktion übergeben Finding

Dies würde auch zu VB.Net gilt.

Beantwortet am 09/12/2008 um 16:46
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more