Question

Est-il possible d'utiliser une variable dynamique (pas sûr de nommer) en C #?

En PHP, je peux faire

$var_1 = "2";
$var_2 = "this is variable 2";

$test = ${"var_".$var_1};

echo $test;

output: this is variable 2;

Peut-on faire en C #?

Était-ce utile?

La solution

En C #, vous utilisez dictionnaires pour associer des valeurs avec des chaînes .

Autres conseils

Non, essentiellement. Le compilateur ne garantit pas que les variables de la méthode existeront (dans leur forme comme écrit), ou avec des noms ...

Si elles étaient des champs (par exemple ou statique), vous pouvez utiliser la réflexion pour obtenir les valeurs; mais pas les variables de la méthode. Pour ce que vous voulez, peut-être utiliser un dictionnaire comme un substitut?

var vars = new Dictionary<string,object>();
vars["var_1"] = "2";
vars["var_2"] = "this is variable 2";

Console.WriteLine(vars["var_" + vars["var_1"]]);

Je ne sais pas si cela fonctionne avec des variables locales (et très probablement il ne car ils sont stockés sous forme d'index), mais vous pouvez accéder aux propriétés de la classe par la réflexion.

Si votre var est un champ de classe, vous pouvez utiliser la GetField procédé de Type de classe pour obtenir des informations sur le terrain, comme sa valeur actuelle.

Vous ne cherchez pas de simples tableaux?

string[] myArray = new string[2];

myArray[0] = "2";
myArray[1] = "this is variable 2"

dictionnaire Otherwhise est le chemin à parcourir.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top