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 #?

War es hilfreich?

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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top