2016-06-01 7 views
-1

Ich würde gerne wissen, ob das möglich ist.Eingabezeichenfolge zum Variablennamen

Szenario:

Benutzer macht einen Eingang, der als String gespeichert ist. Dann habe ich bereits int-Variablen initialisiert und deklariert. Nun möchte ich sagen, wenn die Zeichenfolge, die der Benutzer schrieb, derselbe wie der Name einer dieser int-Variablen ist, dann speichern Sie den Wert der int-Variable in einem anderen.

Ich hoffe, Sie verstehen, was ich archivieren will und kann mir helfen! ^^

+1

es wahrscheinlich eine 'Wörterbuch ' anstatt einen Satz zu verwenden, wäre einfacher nutzen können von einzelnen 'int'. –

+0

Zeigen Sie, was Sie bisher haben - wenn Sie versuchen, eine Zeichenfolge zu verwenden, um eine lokale Variable mit dem Namen zu referenzieren, dann nein, das ist nicht möglich. Welches Problem versuchen Sie zu lösen? –

+0

stattdessen Konstante verwenden und prüfen, ob Eingabewert == const – Prathyush

Antwort

1

Es ist nicht möglich, Namen von Zugriffsvariablen in Runtime zu erhalten, weil der Compiler sie umbenennt, um Speicher zu sparen. Sie können jedoch eine Hashtable verwenden, um eine Zeichenfolge und einen zugehörigen int zu speichern. Es ist nicht genau das, was Sie suchen, aber es sollte funktionieren.

Hofft es hilft Ihnen

0

PaulF korrekt ist, wenn Sie C# 6 verwenden Sie die nameof Operator

int var1 = 2; 
string var2 = "var1"; 
if(nameof(var1) == var2)