10
votes

Variable dynamique en C #?

est-il possible d'utiliser une variable dynamique (pas certaine de nommage) en C #?

en PHP, je peux faire P>

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

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

echo $test;

output: this is variable 2;


1 commentaires

Ne comparons pas une langue de script avec un langage de programmation. Vous pouvez faire la même chose dans l'ASP uni, car il s'agit également d'un langage de script, mais C # est un langage de programmation qui utilise OOP. Juste pour ajouter, vous avez des variables dynamiques dans .NET 4


5 Réponses :


10
votes

in c #, vous utilisez dictionnaires pour associer des valeurs avec des chaînes .


1 commentaires

Pas exactement ce que je voulais, mais le dictionnaire serait bien aussi bien! Merci!



9
votes

Non, fondamentalement. Le compilateur ne garantit pas que les variables de méthodes existeront (sous leur forme comme écrit) ou avec des noms ...

S'ils étaient des champs (instance ou statique), vous pouvez utiliser la réflexion pour obtenir les valeurs; Mais pas la méthode variables. Pour ce que vous voulez, utilisez peut-être un dictionnaire comme substitut? xxx


2 commentaires

Je ne comprends pas cette partie de la deuxième phrase "Les variables de la méthode existeront (sous leur forme comme écrit) ou avec des noms ...". Je comprends le reste de votre réponse, je ne comprends tout simplement pas le sens de cette phrase. Pourriez-vous clarifier ce que cela signifie?


Il veut dire que les noms de variables ne sont pas garantis pour être sauvés avant d'être exécutés, alors même si vous pouviez faire quelque chose comme ça, "$ var_2" n'existerait pas après la compilation.



1
votes

Je ne sais pas si cela fonctionne avec des variables locales (et le plus probablement, cela ne peut pas être stocké en tant qu'index), mais vous pouvez accéder aux propriétés de classe par réflexion.


0 commentaires

1
votes

Si votre var est un champ de classe, vous pouvez utiliser la statique getfield méthode de la classe Type Pour obtenir des informations sur le champ, telles que sa valeur actuelle.


0 commentaires

1
votes

Vous ne cherchez pas de tableaux simples?

string[] myArray = new string[2];

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


0 commentaires