Dynamische Variable in C #?
-
16-09-2019 - |
Frage
Ist es möglich, eine dynamische Variable (nicht sicher über die Benennung) in C # zu verwenden?
In PHP kann ich tun
$var_1 = "2";
$var_2 = "this is variable 2";
$test = ${"var_".$var_1};
echo $test;
output: this is variable 2;
Können wir tun dies in C #?
Lösung
In C # verwenden Sie Wörterbücher Werte mit Strings zu assoziieren .
Andere Tipps
Nein, im Grunde. Der Compiler garantiert nicht, dass Methode Variablen (in ihrer Form als geschrieben) ist, oder mit Namen ...
Wenn sie Felder (Instanz oder statisch), dann könnte man Reflexion verwenden, um die Werte zu erhalten; aber nicht Methode Variablen. Für das, was Sie wollen, vielleicht einen Wörterbuch als Ersatz verwenden?
var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";
Console.WriteLine(vars["var_" + vars["var_1"]]);
Nicht sicher, ob dies mit lokalen Variablen arbeitet (und wahrscheinlich ist es nicht, da sie als Indizes gespeichert sind), aber man kann Klasseneigenschaften durch Reflexion zugreifen zu können.
Wenn Ihr var
ein Klassenfeld ist, dann können Sie die statische GetField
Methode aus der Klasse Type
Feldinformationen, wie beispielsweise den aktuellen Wert zu erhalten.
Sie suchen nicht für einfache Arrays?
string[] myArray = new string[2];
myArray[0] = "2";
myArray[1] = "this is variable 2"
Otherwhise Wörterbuch ist der Weg zu gehen.